安卓手机点击实体或者虚拟返回键,会返回上一级,当到达最上层是,点击返回退出应用,为了防止用户连续点击返回,导致应用退出,在用户点击返回到最上层时,如果再次点击返回,第一次不退出,并提升用户再次点击退出

import 'package:flutter/material.dart';
import 'package:fluttertoast/fluttertoast.dart'; void main() => runApp(MyApp()); class MyApp extends StatelessWidget {
@override
Widget build(BuildContext context) {
return MaterialApp(
title: '',
home: HomePage(),
);
}
} class HomePage extends StatefulWidget {
@override
_HomePageState createState() => _HomePageState();
} class _HomePageState extends State<HomePage> {
@override
Widget build(BuildContext context) {
return WillPopScope(
onWillPop: _onWillPop,
child: Scaffold(
appBar: AppBar(title: Text('data'),),
body: Container(
child: Center(child: Text('data')),
),
)
);
} int last = 0;
Future<bool> _onWillPop() {
//计算两次时间间隔
int now = DateTime.now().millisecondsSinceEpoch;
if (now - last > 8000) {
last = DateTime.now().millisecondsSinceEpoch;
Fluttertoast.showToast(msg: '再次点击返回退出应用',gravity: ToastGravity.BOTTOM);
return Future.value(false);
} else {
return Future.value(true);
}
}
}

最新文章

  1. thrift:swift项目笔记
  2. jQuery中json对象与json字符串互换
  3. Android中ListView动态加载数据
  4. ionic tab导航在android 真机测试中 导航在顶部解决办法
  5. windows配置php开发环境
  6. IOS第一天多线程-02NSThread基本使用
  7. js 运算符优先级
  8. JSP文件下载及出现getOutputStream() has already been called for this response的解决方法
  9. C#_mvc_ajax_return data
  10. Python新手学习基础之循环结构——For语句
  11. Eclipse运行时无法加载主类的解决方法
  12. pdf文件之itextpdf操作实例
  13. 01-Git简介和仓库创建
  14. CAS (多线程保证原子性)
  15. BZOJ1024:[SCOI2009]生日快乐(DFS)
  16. java线程安全之并发Queue
  17. [docker]docker自带的overlay网络实战
  18. js积累点
  19. jQuery 实现复选框的全选与反选
  20. yocto-sumo源码解析(十): ProcessServer.idle_commands

热门文章

  1. linux基础4-压缩及其相关的命令
  2. win10下 switchhost权限修改问题
  3. winform 导入 导出 excel
  4. 如何通过字符串形式导包(importlib模块的使用)
  5. SQL 递归查询,意淫CTE递归的执行步骤
  6. linux基础_vi和vim快捷键
  7. appium+python 【Mac】UI自动化测试封装框架介绍 &lt;三&gt;---脚本的执行
  8. 详解Object.create(null)
  9. 简单理解yii事件
  10. php判断文件是否为txt文件