ETC/Flutter
[flutter] 뒤로가기 두번 클릭으로 앱 종료하기
dkswnkk
2021. 10. 18. 00:13
뒤로 가기 버튼 두 번 클릭으로 종료하기
//BackButton
class BackButton extends StatefulWidget {
@override
_BackButtonState createState() => _BackButtonState();
}
class _BackButtonState extends State<BackButton> {
DateTime backbuttonpressedTime;
@override
Widget build(BuildContext context) {
return Scaffold(
body: WillPopScope(
onWillPop: onWillPop,
child: Center(
child: Text('Double Click to exit app'),
),
),
);
}
}
Future<bool> onWillPop() async {
DateTime currentTime = DateTime.now();
//Statement 1 Or statement2
bool backButton = backbuttonpressedTime == null ||
currentTime.difference(backbuttonpressedTime) > Duration(seconds: 3);
if (backButton) {
backbuttonpressedTime = currentTime;
Fluttertoast.showToast(
msg: "Double Click to exit app",
backgroundColor: Colors.black,
textColor: Colors.white);
return false;
}
return true;
SystemNavigator.pop();
}
앱을 종료하기 위한 세 가지 방식
1. Navigator.of(context).pop(true) //페이지 제거
2. SystemNavigator.pop() // 앱 종료
3. exit(0) //강제종료