flutter 安卓再次点击返回退出应用
2024-09-04 10:47:50
安卓手机点击实体或者虚拟返回键,会返回上一级,当到达最上层是,点击返回退出应用,为了防止用户连续点击返回,导致应用退出,在用户点击返回到最上层时,如果再次点击返回,第一次不退出,并提升用户再次点击退出
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);
}
}
}
最新文章
- thrift:swift项目笔记
- jQuery中json对象与json字符串互换
- Android中ListView动态加载数据
- ionic tab导航在android 真机测试中 导航在顶部解决办法
- windows配置php开发环境
- IOS第一天多线程-02NSThread基本使用
- js 运算符优先级
- JSP文件下载及出现getOutputStream() has already been called for this response的解决方法
- C#_mvc_ajax_return data
- Python新手学习基础之循环结构——For语句
- Eclipse运行时无法加载主类的解决方法
- pdf文件之itextpdf操作实例
- 01-Git简介和仓库创建
- CAS (多线程保证原子性)
- BZOJ1024:[SCOI2009]生日快乐(DFS)
- java线程安全之并发Queue
- [docker]docker自带的overlay网络实战
- js积累点
- jQuery 实现复选框的全选与反选
- yocto-sumo源码解析(十): ProcessServer.idle_commands