返回键连续点击两次退出应用,一般大家都是使用时间差来实现功能,现在推荐使用handler来实现,看代码

使用工具类DoubleClickExitHelper
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();}mActivity.finish();return true;} else {isOnKeyBacking = true;if(mBackToast == null) {mBackToast = Toast.makeText(mActivity, "再按一次返回", 2000);}mBackToast.show();//延迟两秒的时间,把Runable发出去mHandler.postDelayed(onBackTimeRunnable, 2000);return true;}}private Runnable onBackTimeRunnable = new Runnable() {@Overridepublic void run() {isOnKeyBacking = false;if(mBackToast != null){mBackToast.cancel();}}};}


接下来我们只需要在回调onKeyDown中加入该工具方法即可,当然使用前要初始化下
DoubleClickExitHelper doubleClick = new DoubleClickExitHelper(this);

接下来重写onKeyDown:
/** * Returns:  * Return * true to prevent this event from being propagated further, or false to * indicate that you have not handled this event and it should continue to * be propagated. */@Overridepublic boolean onKeyDown(int keyCode, KeyEvent event) {if (event.getKeyCode() == KeyEvent.KEYCODE_BACK) {return doubleClick.onKeyDown(keyCode, event);}return super.onKeyDown(keyCode, event);}

完成,方便简单

更多相关文章

  1. Python3原生编写月份计算工具
  2. 一款常用的 Squid 日志分析工具
  3. GitHub 标星 8K+!一款开源替代 ls 的工具你值得拥有!
  4. Linux 环境下实战 Rsync 备份工具及配置 rsync+inotify 实时同步
  5. [Android] 获取WebView的页面标题(Title)-----WebChromeClient.o
  6. Android交互对话框
  7. Android(安卓)自定义View步骤
  8. android中重写onConfigurationChanged方法响应系统设置更改
  9. Android(安卓)开发工具有哪些?

随机推荐

  1. Building the android code
  2. Android通过广播接收者调用服务内方法
  3. Handling Older Devices in a Newer Andr
  4. GoogleDrive视频直链播放
  5. Telephony单元测试分析
  6. 9.10 安卓常用工具类之一 定位-----Locat
  7. android 一步一步创建jni示例
  8. 使用AnsyncTask异步类从网络上下载图片
  9. 文件File path与content:// Uri的相互转
  10. android问题汇总