首页 > 编程知识 正文

手机为什么会再按一次退出,取消再按一次退出程序

时间:2023-05-05 17:23:25 阅读:280148 作者:3069

点击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; }}

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。