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) //강제종료