优雅的退出Flutter应用
- 发表于
- flutter
flutter默认情况下的退出应用是不彻底的,会在后台继续运行VM虚拟机,但一些场景下可能需要强制/彻底关闭应用程序。
Flutter退出/关闭应用
在IOS上没有退出/关闭应用的概念,起码是在编程概念和方法中没有的,唯一的方法是用户手势返回桌面,或用户主动清空后台程序。但是,也有不推荐的方法可实现:
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方法
void back(){
if(Navigator.canPop(_context)){
Navigator.pop(_context);
}else{
SystemNavigator.pop(); ///官方推荐方法,但不彻底
exit(0); ///以编程方式退出,彻底但体验不好
}
}
关于pop方法更多说明。
IOS方法
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应用
所有媒体,可在保留署名、
原文连接
的情况下转载,若非则不得使用我方内容。