思路:监听手机上的返回键,点击第一下记录,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(安卓)Activity界面切换添加动画特效
  2. Android(安卓)环境搭建
  3. android studio调试c/c++代码
  4. Android(安卓)Wifi模块分析(三)
  5. Android中dispatchDraw分析
  6. Android四大基本组件介绍与生命周期
  7. 在Fragment中设置控件点击方法,执行失败。
  8. Android(安卓)Service AIDL
  9. Android调用天气预报的WebService简单例子

随机推荐

  1. 传感器总结
  2. Android Studio之——问题集合及解决方法
  3. 〖Android〗CyanogenMod同步错误的解决
  4. Android 带输入框的弹出框
  5. Android(安卓)获取源码
  6. android调用NotificationManager.notify
  7. Android中如何使用基于监听的事件处理(上)
  8. android ------ Emulator: error: x86 em
  9. (转摘)Android腾讯微薄客户端开发十二:博
  10. Android(安卓)集成二维码扫描功能