flutter 安卓再次點擊返回退出應用

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