您的位置:首页 > 移动开发 > Android开发

学习封装双击返回键退出

2015-11-16 15:04 459 查看
今天在开源中国的源码中看见大神封装的双击返回键感觉不错所以自己也写了一遍收藏了 。

public DoubleClickHelper{
private Handler mHandler;// 用于提示双击返回键退出
private Activity mActivity;
private boolean mIsOnkeyBacking= false;// 用于标记是否是双击返回键退出
public DoublickClickHelper(Activity mActivity){
this.mActivity = mActivity;
mHandler = new Handler(Looper.getMainLooper());
}

/**
*点击事件的处理
*/
public boolean onKeyDown(KeyEvent event) {

if (event.getKeyCode() != KeyEvent.KEYCODE_BACK) {
return false;
}

if(mIsOnkeyBacking){ // 第二次点击返回键
mIsOnkeyBacking = false;
if(mToast != null){
mToast.cancel();
mToast = null;
}

mHandler.removeCallbacks(onBackTimeRunnable); //

//在这里可以添加退出操作

AppManager.getInstance().appExit();
}else{ // 第一次点击返回键
mIsOnkeyBacking = true;
if (mToast == null) {
// 这里的文字你可以在你的项目中用R.string.**代替;
mToast = Toast.makeText(mActivity,"双击返回键退出",Toast.LENGTH_LONG);
}
mToast.show();

mHandler.postDelayed(onBackTimeRunnable,2000); // 在俩秒后执行
}

return true;
}

/**
* 用户在俩秒内没有再次点击返回键所以将执行取消操作
*/
private Runnable onBackTimeRunnable = new Runnable() {
@Override
public void run() {
if (mToast != null) {
mToast.cancel();
mToast = null;
}

mIsOnkeyBacking = false;
}
};
}


使用方法就是在应用主Activity的onKeyDown方法中调用DoubleClickHelper实例的onKeyDown方法。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  Android