这是【Flutter 问题系列第 24 篇】,如果觉得有用的话,欢迎关注专栏。
如果当前是在登录或者注册界面,用户点击退出事件时,一般都会做退出 APP 的功能,那么在 Flutter 中如何实现呢?
方式一
也是推荐的方式,所以放在了第一位,引入 import 'package:flutter/services.dart';
,在退出事件中调用下面代码就可以了。
/// 退出 APP 方式一
void _doQuit() async {
await SystemChannels.platform.invokeMethod('SystemNavigator.pop');
}
方式二
需要引入 import 'dart:io';
同样是在退出事件中调用下面代码即可。
/// 退出 APP 方式二
void _doExit() {
exit(0);
}
实现两秒内多次点击退出按钮时,退出 APP
不过往往并不是用户点击退出 APP 时就直接退出了,而是先给出一个提示,提示用户再点一次将要退出 APP。
所以我们设定当用户在两秒内点了两次退出,就认为用户在执行退出 APP 的操作。
首先定义一个 DateTime 类型的变量 _lastTime
DateTime _lastTime; // 上次点击退出当前页面的时间
通过判断两次点击的时间差来决定是否执行退出 APP 操作,如下代码
void _doQuit() async {
// 两秒内没有再点过退出按钮
if (_lastTime == null || DateTime.now().difference(_lastTime) > Duration(seconds: 2)) {
// 重置最后一次点击的时间
_lastTime = DateTime.now();
// 弹出吐司,需引入插件 bot_toast,当然其它的吐司插件也行
BotToast.showText(text: "再按一次退出APP", align: Alignment.center);
}
// 两秒内点了两次退出按钮,则退出 APP
else {
await SystemChannels.platform.invokeMethod('SystemNavigator.pop');
}
}
第一次点击时间间隔为2秒以上,第二次点击时间间隔为2秒内,最终的效果图如下所示

至此,在 Flutter 中退出 APP 的两种方式,以及在一定时间时隔内退出 APP 的功能便介绍完毕。
你的问题得到解决了吗?欢迎在评论区留言。
赠人玫瑰,手有余香,如果觉得文章不错,希望可以给个一键三连,感谢。
结束语 Google 的 Flutter 越来越火,截止 2021年6月23日 GitHub 标星已达 123K,Flutter 毅然是一种趋势,所以作为前端开发者,没有理由不趁早去学习。 无论你是 Flutter 新手还是已经入门了,不妨先点个关注,后续我会将 Flutter 中的常用组件(含有源码分析、组件的用法及注意事项)以及可能遇到的问题写到 CSDN 博客中,希望自己学习的同时,也可以帮助更多的人。