Android 再按一次退出程序三种办法

简介: 在Xamarin android中双击返回键退出程序的第一种做法思路就是当用户按下返回键的时间超过两秒就退出,根据Keycode.Back判断用户按下的是返回键,重写这个OnKeyDown DateTime? firstTime; public override bo...

在Xamarin android中双击返回键退出程序的第一种做法

思路就是当用户按下返回键的时间超过两秒就退出,根据Keycode.Back判断用户按下的是返回键,重写这个OnKeyDown

     DateTime? firstTime;
        public override bool OnKeyDown(Keycode keyCode, KeyEvent e)
        {
            if (keyCode == Keycode.Back && e.Action == KeyEventActions.Down)//判断点击的是返回键,并且动作是Down按下
            {
                if (!firstTime.HasValue || DateTime.Now.Second - firstTime.Value.Second > 2)
                {
                    Toast.MakeText(this, "再按一次退出", ToastLength.Short).Show();
                    firstTime = DateTime.Now;
                }
                else
                {
                    Finish();//退出应用程序
                }
                return true;
            }
            return base.OnKeyDown(keyCode,e);
        }

在Xamarin android中双击返回键退出程序的第二种做法

思路就是使用.net的定时器对象Timer,当按下返回键 timer启动,两秒之内再次按下返回键isExit为true,直接退出程序。

<pre name="code" class="csharp">  public override bool OnKeyDown(Keycode keyCode, KeyEvent e)
        {
            if (keyCode == Keycode.Back && e.Action == KeyEventActions.Down)
            {
                ExitWidthTimer();
                return true;
            }
            return base.OnKeyDown(keyCode,e);
        }
        private void ExitWidthTimer()
        {
            bool isExit = false;
            Timer time_timer = null; //注意这里使用的用的.net的Timer对象
            if (!isExit)
            {
                isExit = true;
                Toast.MakeText(this, "再按一次退出", ToastLength.Short).Show();
                time_timer = new Timer();
                time_timer.Interval = 2000;
                time_timer.Enabled = true;

                //定时的2000毫秒到了isExis为true,退出app
                time_timer.Elapsed +=delegate{
                    isExit = false;
                };
            }
            else
            {
                Finish();
            }
        }
 android中双击退出程序的第三种方法暂时还没想出来,差不多就是利用以上两种方法来实现,代码很简单,关键还是要知道怎么写的。ok,如果你有还有更好的写法和实现方式也可以告诉我哦!不要问为什么老是两秒钟,一般的程序都是两秒,仿佛也是业内默认的一样的
目录
相关文章
|
11天前
|
设计模式 算法 前端开发
Android面经分享,失业两个月,五一节前拿到Offer,设计思想与代码质量优化+程序性能优化+开发效率优化
Android面经分享,失业两个月,五一节前拿到Offer,设计思想与代码质量优化+程序性能优化+开发效率优化
|
13天前
|
Linux Android开发
测试程序之提供ioctl函数应用操作GPIO适用于Linux/Android
测试程序之提供ioctl函数应用操作GPIO适用于Linux/Android
18 0
|
7月前
|
存储 传感器 定位技术
《移动互联网技术》 第四章 移动应用开发: Android Studio开发环境的使用方法:建立工程,编写源程序,编译链接,安装模拟器,通过模拟器运行和调试程序
《移动互联网技术》 第四章 移动应用开发: Android Studio开发环境的使用方法:建立工程,编写源程序,编译链接,安装模拟器,通过模拟器运行和调试程序
91 0
|
7月前
|
Java Android开发 开发者
1024程序节|Android框架之一 BRVAH【BaseRecyclerViewAdapterHelper】使用demo
BRVAH是一个强大的RecyclerAdapter框架(什么是RecyclerView?),它能节约开发者大量的开发时间,集成了大部分列表常用需求解决方案。为什么会有它?请查看「Android开源框架BRVAH由来篇」该框架于2016年4月10号发布的第1个版本到现在已经一年多了,经历了800多次代码提交,140多次版本打包,修复了1000多个问题,获得了9000多star,非常感谢大家的使用以及反馈。
159 0
|
13天前
|
XML Java Android开发
如何美化android程序:自定义ListView背景
如何美化android程序:自定义ListView背景
10 2
|
13天前
|
Android开发
Android修改默认system/bin/下可执行程序拥有者和权限,使用实例,只有root和系统app权限才能执行某个命令。
Android修改默认system/bin/下可执行程序拥有者和权限,使用实例,只有root和系统app权限才能执行某个命令。 【5月更文挑战第2天】
23 0
|
13天前
|
Linux 测试技术 Android开发
测试程序之UART 232/485适用于Android/Linux
测试程序之UART 232/485适用于Android/Linux
23 0
|
5月前
|
网络协议 Android开发 虚拟化
Android Studio无法运行程序调试程序出现Unable to connect to ADB.Check the Event Log for possible issues.Verify th
Android Studio无法运行程序调试程序出现Unable to connect to ADB.Check the Event Log for possible issues.Verify th
66 0
Android Studio无法运行程序调试程序出现Unable to connect to ADB.Check the Event Log for possible issues.Verify th
|
7月前
|
测试技术 开发工具 数据库
《移动互联网技术》第十一章 Android应用工程案例: 掌握Android系统的需求分析和设计以及 Android项目的程序测试和版本管理方法
《移动互联网技术》第十一章 Android应用工程案例: 掌握Android系统的需求分析和设计以及 Android项目的程序测试和版本管理方法
78 0
|
9月前
|
XML Java Android开发
#4,Android Studio Android程序结构 工程目录介绍 文件作用 运行配置文件AndroidManifest.xml
#4,Android Studio Android程序结构 工程目录介绍 文件作用 运行配置文件AndroidManifest.xml