Android(安卓)返回键连续点击两次退出应用
16lz
2021-01-25
返回键连续点击两次退出应用,一般大家都是使用时间差来实现功能,现在推荐使用handler来实现,看代码
使用工具类DoubleClickExitHelper
接下来我们只需要在回调onKeyDown中加入该工具方法即可,当然使用前要初始化下
接下来重写onKeyDown:
完成,方便简单
使用工具类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);}
完成,方便简单
更多相关文章
- Python3原生编写月份计算工具
- 一款常用的 Squid 日志分析工具
- GitHub 标星 8K+!一款开源替代 ls 的工具你值得拥有!
- Linux 环境下实战 Rsync 备份工具及配置 rsync+inotify 实时同步
- [Android] 获取WebView的页面标题(Title)-----WebChromeClient.o
- Android交互对话框
- Android(安卓)自定义View步骤
- android中重写onConfigurationChanged方法响应系统设置更改
- Android(安卓)开发工具有哪些?