Android 點選兩次返回鍵退出程式
- <span style="font-size:14px;">package com.test.twiceexit;
- import java.util.Timer;
- import android.app.Activity;
- import android.os.Bundle;
- import android.os.Handler;
- import android.os.Message;
- import android.view.KeyEvent;
- import android.view.Menu;
- import android.widget.Toast;
- public class MainActivity extends Activity {
- private static Boolean isQuit = false;
- private long mExitTime = 0;
- Timer timer = new Timer();
- @Override
- protected void onCreate(Bundle savedInstanceState) {
- super.onCreate(savedInstanceState);
- setContentView(R.layout.activity_main);
- }
- @Override
- public boolean onCreateOptionsMenu(Menu menu) {
- // Inflate the menu; this adds items to the action bar if it is present.
- getMenuInflater().inflate(R.menu.main, menu);
- return true;
- }
- /**************************************************
- * 方法一
- * ************************************************/
- // @Override
- // public boolean onKeyDown(int keyCode, KeyEvent event) {
- // if (keyCode == KeyEvent.KEYCODE_BACK) {
- // if (isQuit == false) {
- // isQuit = true;
- // Toast.makeText(getBaseContext(), "再按一次返回鍵退出程式",
- // Toast.LENGTH_SHORT).show();
- // TimerTask task = null;
- // task = new TimerTask() {
- // public void run() {
- // isQuit = false;
- // }
- // };
- // timer.schedule(task, 2000);
- // } else {
- // finish();
- // System.exit(0);
- // }
- // }
- // return false;
- // }
- /**************************************************
- * 方法二
- * ************************************************/
- // @Override
- // public boolean onKeyDown(int keyCode, KeyEvent event) {
- // if (keyCode == KeyEvent.KEYCODE_BACK) {
- // if ((System.currentTimeMillis() - mExitTime) > 2000) {//
- // // 如果兩次按鍵時間間隔大於2000毫秒,則不退出
- // Toast.makeText(this, "再按一次退出程式", Toast.LENGTH_SHORT).show();
- // mExitTime = System.currentTimeMillis();// 更新mExitTime
- // } else {
- // System.exit(0);// 否則退出程式
- // }
- // return true;
- // }
- // return super.onKeyDown(keyCode, event);
- //
- // }
- /**************************************************
- * 方法三
- * ************************************************/
- Handler mHandler = new Handler() {
- @Override
- public void handleMessage(Message msg) {
- super.handleMessage(msg);
- isQuit = false;
- }
- };
- @Override
- public boolean onKeyDown(int keyCode, KeyEvent event) {
- if (keyCode == KeyEvent.KEYCODE_BACK) {
- if (!isQuit) {
- isQuit = true;
- Toast.makeText(getApplicationContext(), "再按一次退出程式",
- Toast.LENGTH_SHORT).show();
- // 利用handler延遲傳送更改狀態資訊
- mHandler.sendEmptyMessageDelayed(0, 2000);
- } else {
- finish();
- System.exit(0);
- }
- }
- return false;
- }
- }
- </span>
推薦使用第二種,該方法相對來說降低系統消耗!
原始碼地址:http://download.csdn.net/detail/dadaxiaoxiaode/5815849
ref:http://blog.csdn.net/yelangjueqi/article/details/9472705
http://blog.csdn.net/h7870181/article/details/8906596
相關文章
- 點選兩次返回退出程式
- AndroidStudio點選兩次返回鍵,退出APPAndroidAPP
- Android實現點選兩次返回鍵和長按返回鍵退出應用實踐Android
- Android 實現點選兩次BACK鍵退出應用Android
- Android主介面連續兩次點選物理返回鍵退出應用功能實現Android
- Android開發之連續點選返回鍵退出程式Android
- 兩次點選BACK鍵退出應用的效果
- Android實現首次點選返回鍵提示資訊,第二次點選退出應用Android
- mui退出軟體點選兩次提示UI
- Cordova + Vue 實現點選兩次退出應用Vue
- Android-返回桌面?退出程式?Android
- Android之點選兩次才響應onclick方法Android
- android短影片開發,點選兩次實現不同點選效果的實現方式Android
- android 返回鍵Android
- android設定軟鍵盤搜尋鍵以及監聽搜尋鍵點選時發生兩次事件的問題解決Android事件
- Android 退出多個Activity | 退出程式Android
- 點選label執行兩次的bug
- EditText點選外部退出編輯
- 點選返回上一頁程式碼例項
- jquery點選返回網頁頂部程式碼jQuery網頁
- 微信小程式自定義tabbar圖示切換點選兩次才選中解決方法微信小程式tabBar
- quick 3.2 android 返回鍵功能UIAndroid
- Android 模擬返回鍵功能Android
- 針對IOS頁面縮放,需要點選兩次才能選中iOS
- 點選返回頂部程式碼具有緩衝效果
- 微信小程式開發中按下自己手機的返回按鍵是直接退出小程式而不是返回上級頁面微信小程式
- QuitAll for Mac(應用程式一鍵退出)UIMac
- 如何一鍵退出所有應用程式?
- 後臺點選退出如何跳出frameset框架框架
- Android應用程式完全退出Android
- 點選返回頂部效果實現程式碼詳解
- JavaScript 點選按鈕返回底部JavaScript
- Flutter實戰之坑——按返回鍵回到手機桌面不退出appFlutterAPP
- weex生成的單頁應用嵌入app中,點選物理返回鍵時如何返回上一個路由頁面,而不是直接退出單頁應用,回到原生app頁面APP路由
- android PopupWindow監聽返回鍵無效Android
- 具有彈性的點選返回網頁頂部程式碼網頁
- 點選返回網頁頂層效果網頁
- android 跨程式點選方式總結Android