思路:监听手机上的返回键,点击第一下记录,2s内点击第二下则退出,否则调用handler还原第一次点击的标志位

1 配置权限

2 onKey中调用

<uses-permission android:name="android.permission.RESTART_PACKAGES" />

import android.app.Activity;import android.app.ActivityManager;import android.content.Context;import android.os.Handler;import android.os.Looper;import android.view.KeyEvent;import android.widget.Toast;public class DoubleClickExitHelper {private final Activity mActivity;private boolean isOnKeyBacking;private Handler mHandler;private Toast mBackToast;public DoubleClickExitHelper(Activity activity) {mActivity = activity;mHandler = new Handler(Looper.getMainLooper());}/** * Activity onKeyDown事件 * */public boolean onKeyDown(int keyCode, KeyEvent event) {if(keyCode != KeyEvent.KEYCODE_BACK) {return false;}if(isOnKeyBacking) {mHandler.removeCallbacks(onBackTimeRunnable);if(mBackToast != null){mBackToast.cancel();}// 退出//AppManager.getAppManager().AppExit(mActivity);//mActivity.finish();AppExit(mActivity);return true;} else {isOnKeyBacking = true;if(mBackToast == null) {mBackToast = Toast.makeText(mActivity, "再按一次退出应用", 2000);}mBackToast.show();mHandler.postDelayed(onBackTimeRunnable, 2000);return true;}}private Runnable onBackTimeRunnable = new Runnable() {@Overridepublic void run() {isOnKeyBacking = false;if(mBackToast != null){mBackToast.cancel();}}};/** * 退出应用程序 */public void AppExit(Context context) {try {ActivityManager activityMgr= (ActivityManager) context.getSystemService(Context.ACTIVITY_SERVICE);activityMgr.restartPackage(context.getPackageName());System.exit(0);} catch (Exception e) {}}}

更多相关文章

  1. 如何使Android应用程序获取系统权限【转】
  2. Eclipse开发Android应用程序入门:重装上阵
  3. android点滴(8) -- android应用程序的生命周期
  4. Android应用程序组件Content Provider的共享数据更新通知机制分
  5. Android 将自己的应用程序改成系统的应用程序
  6. android应用 小试牛刀 开发自己的应用程序就是这么简单

随机推荐

  1. Rosmin--OpenCV Color Blob Tracker on A
  2. Android(安卓)按钮点击两次触发不同的事
  3. 在omap3530上移植成功Android的ALSA声卡
  4. Android(安卓)Jetpack-ViewModel
  5. android 深度搜索笔记一
  6. Lua学习 2) —— Android与Lua互调
  7. Android(安卓)编程下 Touch 事件的分发和
  8. 解析Android消息处理机制:Handler/Thread/
  9. Android中的dispatchTouchEvent()、onInt
  10. android api 中文 (75)—— AdapterView.On