返回

无需root轻松实现,手把手教你在Flutter Android应用中配置点击两次返回键退出

Android

Flutter Android点击两次“<”返回键退出APP

在安卓手机上才会有物理返回键,而iOS手机是没有的,所以说这个是安卓手机独有的功能。使用场景:当用户在某一段时间内连续点击两次返回键,才会被认为是退出应用。在Flutter中想实现这个功能,首先我们要明确一点,这个功能默认是开启的,也就是说你不需要额外做任何操作就能实现点击两次返回键退出app。

但是,如果你想自定义这个功能,比如你想修改点击两次返回键的时间间隔,或者你想在用户点击第一次返回键时弹出提示框,那么你就需要对这个功能进行一些配置。

配置点击两次返回键退出APP

实现点击两次返回键退出APP功能,需要添加代码 WillPopScope,在 WillPopScope 组件中,我们可以监听安卓设备的物理返回键。

import 'package:flutter/material.dart';

void main() {
  runApp(MyApp());
}

class MyApp extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      home: WillPopScope(
        onWillPop: () async {
          // 判断是否连续点击两次返回键
          if (_lastPressedAt == null ||
              DateTime.now().difference(_lastPressedAt) > Duration(seconds: 2)) {
            // 保存点击的时间
            _lastPressedAt = DateTime.now();
            // 显示提示信息
            ScaffoldMessenger.of(context).showSnackBar(SnackBar(
              content: Text('再按一次退出'),
              duration: Duration(seconds: 2),
            ));
            return false;
          }
          return true;
        },
        child: Scaffold(
          appBar: AppBar(
            title: Text('Flutter Demo'),
          ),
          body: Center(
            child: Text('点击两次返回键退出'),
          ),
        ),
      ),
    );
  }

  DateTime? _lastPressedAt; // 保存第一次点击的时间
}

那么如何修改点击两次返回键的时间间隔呢?其实也很简单,只需要修改 _lastPressedAt 的值即可。比如你想将时间间隔修改为5秒,那么只需要将 Duration(seconds: 2) 修改为 Duration(seconds: 5) 即可。

除了修改时间间隔,你还可以自定义点击第一次返回键时弹出的提示框。比如你想在提示框中显示“确定要退出吗?”,那么只需要将 Text('再按一次退出') 修改为 Text('确定要退出吗?') 即可。

总结

以上就是如何在Flutter Android应用中配置点击两次返回键退出APP的功能。希望本文对您有所帮助。如果您有任何疑问,请随时留言。