生活随笔
收集整理的這篇文章主要介紹了
Android实现点击两次返回键退出
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
轉(zhuǎn)自?http://blog.sina.com.cn/s/blog_4fd2a65a0101gg2o.html
在做安卓應(yīng)用是我們經(jīng)常要判斷用戶對返回鍵的操作,一般為了防止誤操作都是在用戶連續(xù)按下兩次返回鍵的時候提示用戶是否退出應(yīng)用程序。
第一種實現(xiàn)的基本原理就是,當按下BACK鍵時,會被onKeyDown捕獲,判斷是BACK鍵,則執(zhí)行exit方法。
在exit方法中,會首先判斷isExit的值,如果為false的話,則置為true,同時會彈出提示,并在2000毫秒(2秒)后發(fā)出一個消息,在Handler中將此值還原成false。如果在發(fā)送消息間隔的2秒內(nèi),再次按了BACK鍵,則再次執(zhí)行exit方法,此時isExit的值已為true,則會執(zhí)行退出的方法。
| 123456789
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
| package com.gaolei.exitdemo;import android.app.Activity;
import android.os.Bundle;
import android.os.Handler;
import android.os.Message;
import android.view.KeyEvent;
import android.widget.Toast;public class MainActivity extends Activity {// 定義一個變量,來標識是否退出private static boolean isExit = false;Handler mHandler = new Handler() {@Overridepublic void handleMessage(Message msg) {super.handleMessage(msg);isExit = false;}};@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);}@Overridepublic boolean onKeyDown(int keyCode, KeyEvent event) {if (keyCode == KeyEvent.KEYCODE_BACK) {exit();return false;}return super.onKeyDown(keyCode, event);}private void exit() {if (!isExit) {isExit = true;Toast.makeText(getApplicationContext(), "再按一次退出程序",Toast.LENGTH_SHORT).show();// 利用handler延遲發(fā)送更改狀態(tài)信息mHandler.sendEmptyMessageDelayed(0, 2000);} else {finish();System.exit(0);}}}
|
第二種實現(xiàn)方式,通過記錄按鍵時間計算時間差實現(xiàn):
| 123456789
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
| package com.gaolei.exitdemo;import android.app.Activity;
import android.os.Bundle;
import android.view.KeyEvent;
import android.widget.Toast;public class MainActivity extends Activity {private long exitTime = 0;@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);}@Overridepublic boolean onKeyDown(int keyCode, KeyEvent event) {if (keyCode == KeyEvent.KEYCODE_BACK) {exit();return false;}return super.onKeyDown(keyCode, event);}public void exit() {if ((System.currentTimeMillis() - exitTime) > 2000) {Toast.makeText(getApplicationContext(), "再按一次退出程序",Toast.LENGTH_SHORT).show();exitTime = System.currentTimeMillis();} else {finish();System.exit(0);}}} |
聲明:eoe文章著作權(quán)屬于作者,受法律保護,轉(zhuǎn)載時請務(wù)必以超鏈接形式附帶如下信息
原文作者:?gaolei_xj
原文地址:?http://my.eoe.cn/leigo/archive/2146.html
總結(jié)
以上是生活随笔為你收集整理的Android实现点击两次返回键退出的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。