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