在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,如果你有還有更好的寫法和實作方式也可以告訴我哦!不要問為什麼老是兩秒鐘,一般的程式都是兩秒,仿佛也是業内預設的一樣的