开发者社区> 操张林> 正文
阿里云
为了无法计算的价值
打开APP
阿里云APP内打开

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,如果你有还有更好的写法和实现方式也可以告诉我哦!不要问为什么老是两秒钟,一般的程序都是两秒,仿佛也是业内默认的一样的
   

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
逮虾户!Android程序调试竟简单如斯(中)
本节讨论的是Android开发中老生常谈的程序调试。 一个开发仔的日常离不开:写BUG和解BUG,特别是多人协作的时候, 帮别人擦屁股(解Bug)的情况屡见不鲜。另外,接盘别人的项目,着手解 Bug也能帮你快速的上手项目。综上,修炼好「调试」这门技能显得尤为重要。 但是,但是感觉很多玩家还停留下无脑打印的阶段,所以有了这篇文章。
38 0
逮虾户!Android程序调试竟简单如斯(上)
本节讨论的是Android开发中老生常谈的程序调试。 一个开发仔的日常离不开:写BUG和解BUG,特别是多人协作的时候, 帮别人擦屁股(解Bug)的情况屡见不鲜。另外,接盘别人的项目,着手解 Bug也能帮你快速的上手项目。综上,修炼好「调试」这门技能显得尤为重要。 但是,但是感觉很多玩家还停留下无脑打印的阶段,所以有了这篇文章。
36 0
逮虾户!Android程序调试竟简单如斯(下)
本节讨论的是Android开发中老生常谈的程序调试。 一个开发仔的日常离不开:写BUG和解BUG,特别是多人协作的时候, 帮别人擦屁股(解Bug)的情况屡见不鲜。另外,接盘别人的项目,着手解 Bug也能帮你快速的上手项目。综上,修炼好「调试」这门技能显得尤为重要。 但是,但是感觉很多玩家还停留下无脑打印的阶段,所以有了这篇文章。
48 0
【Android 应用开发】Android开发技巧--Application, ListView排列,格式化浮点数,string.xml占位符,动态引用图片
【Android 应用开发】Android开发技巧--Application, ListView排列,格式化浮点数,string.xml占位符,动态引用图片
161 0
Android开发重要参考资料
=======================博客============================= 秋百万 有心课堂 郭霖 源码 安装ffmpeg 胡凯 官方培训课程 litesuitsway 爱哥 trinea robinRobin Hu...
854 0
+关注
文章
问答
文章排行榜
最热
最新
相关电子书
更多
Android应用启动速度和内存优化实践
立即下载
Android内存泄漏自动化链路分析组件Probe
立即下载
Android插件化:从入门到放弃
立即下载