安卓手機點擊實體或者虛擬返回鍵,會返回上一級,當到達最上層是,點擊返回退出應用,爲了防止用戶連續點擊返回,致使應用退出,在用戶點擊返回到最上層時,若是再次點擊返回,第一次不退出,並提高用戶再次點擊退出app
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); } } }