优雅的退出Flutter应用
- 发表于
- flutter
flutter默认情况下的退出应用是不彻底的,会在后台继续运行VM虚拟机,但一些场景下可能需要强制/彻底关闭应用程序。
Flutter退出/关闭应用
在IOS上没有退出/关闭应用的概念,起码是在编程概念和方法中没有的,唯一的方法是用户手势返回桌面,或用户主动清空后台程序。但是,也有不推荐的方法可实现:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 |
exit(0) ///示例 import 'dart:io'; @override Widget build(BuildContext context) { return new Scaffold( appBar: new AppBar( title: new Text(widget.title), ), body: new ... (...), floatingActionButton: new FloatingActionButton( onPressed: ()=> exit(0), tooltip: 'Close app', child: new Icon(Icons.close), ), ); } |
上面方法在IOS和Androi上都可行,但又似乎不太对,因为Flutter和IOS都不推荐此种做法,在Android上,使用exit(0)会马上终结VM退出应用,交互上呈现一闪而过或短暂的黑屏。在IOS上,则可能出现无法上架商店。
Android方法
1 2 3 4 5 6 7 8 |
void back(){ if(Navigator.canPop(_context)){ Navigator.pop(_context); }else{ SystemNavigator.pop(); ///官方推荐方法,但不彻底 exit(0); ///以编程方式退出,彻底但体验不好 } } |
关于pop方法更多说明。
IOS方法
1 2 3 4 5 6 7 |
void back(){ if(Navigator.canPop(_context)){ Navigator.pop(_context); }else{ exit(0); ///以编程方式退出,彻底但体验不好 } } |
2、参考此处:https://stackoverflow.com/questions/355168/proper-way-to-exit-iphone-application
原文连接:优雅的退出Flutter应用
所有媒体,可在保留署名、
原文连接
的情况下转载,若非则不得使用我方内容。