点击APP返回键,提示“再按一次退出XXXX”实现
2016-04-15 12:33
239 查看
点击APP返回键,提示“再按一次退出XXXX”实现
现在好多app,当用户在点击back键的时候,如果多点击的话,就会提示“再按一次退出”,其实这种效果也是很好实现的,只需要重写OnKeyDown()方法:
当然还有另外一种方法,就是我们判断是否为双击事件,也需要重写该方法:
ClickUtil
现在好多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; } }
相关文章推荐
- loadView在App启动时到底都干了些什么?
- Android小程序-Walker注册页面(三)
- hello objective-c
- 深入理解Objective-C:方法缓存
- Objective-C之NSNotification Center(通知中心)
- 深入理解Objective-C:Category
- Unity 3d 如何实现点击屏幕,npc自动移动到点击位置
- AppStore应用评分
- APP导航Fragment与RadioGroup
- android写京东首页
- iOS路径问题
- Swift 取子字符串
- Android Service中给其他的组件回传数据。
- android studio2.0出现的gradle问题,instant Run即时运行不了.
- android studio2.0出现的gradle问题,instant Run即时运行不了.
- iOS集成构建
- 充分掌握Android Debug Bridge(ADB)
- android EditText 自动获取焦点并弹出软键盘
- Android3.1后系统接收不到广播的问题解析
- android下拉刷新精彩动画