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

点击APP返回键,提示“再按一次退出XXXX”实现

2016-04-15 12:33 239 查看
点击APP返回键,提示“再按一次退出XXXX”实现

现在好多app,当用户在点击back键的时候,如果多点击的话,就会提示“再按一次退出”,其实这种效果也是很好实现的,只需要重写OnKeyDown()方法:

@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
if (keyCode == KeyEvent.KEYCODE_BACK) {

if (mIsExit == false) {
mIsExit = true;
ToastUtil.showToast("再按一次退出");
handler.sendEmptyMessageDelayed(0, 3000);
return true;
} else {
finish();
}
}
return true;
}

Handler handler = new Handler() {
@Override
public void handleMessage(Message msg) {
super.handleMessage(msg);
mIsExit = false;
}
};


当然还有另外一种方法,就是我们判断是否为双击事件,也需要重写该方法:

@Override
public boolean onKeyDown(int keyCode, KeyEvent event)
{
if (keyCode == KeyEvent.KEYCODE_BACK)
{
ClickUtil.getInstance(this).doDoubleClick(1500, "再按一次返回键退出");
return true;
}
return super.onKeyDown(keyCode, event);
}


ClickUtil

public class ClickUtil extends DoubleClick
{
private static ClickUtil exit;
private ClickUtil(Context context) {
super(context);
setDoubleClickListener(new DoubleClickListener() {
@Override
public void afteDoubleClick() {
((Activity) mContext).finish();
destroy();
}
});
}

/**
* 返回一个双击退出的实例。
*
* @param context
* @return ExitDoubleClick
*/
public static synchronized ClickUtil getInstance(Context context) {
if (exit == null) {
exit = new ClickUtil(context);
}
return exit;
}

/**
* 双击退出Activity,如果msg为null,而默认显示的提示语为"再按一次退出"。
*/
@Override
public void doDoubleClick(int delayTime, String msg) {
if (msg == null || msg.equals("")) {
msg = "再按一次退出";
}
super.doDoubleClick(delayTime, msg);
}

private static void destroy() {
exit = null;
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: