安卓app再次点击退出应用
2014-12-02 16:58
176 查看
第一步,定义一个变量,用于标识是否退出
[java] view
plaincopy
boolean isExit;
第二步,重写Activity中onKeyDown方法
[java] view
plaincopy
@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
if (keyCode == KeyEvent.KEYCODE_BACK) {
exit();
return false;
} else {
return super.onKeyDown(keyCode, event);
}
}
第三步,写一个退出方法,名称就是onKeyDown中的exit()
[java] view
plaincopy
public void exit(){
if (!isExit) {
isExit = true;
Toast.makeText(getApplicationContext(), "再按一次退出程序", Toast.LENGTH_SHORT).show();
mHandler.sendEmptyMessageDelayed(0, 2000);
} else {
Intent intent = new Intent(Intent.ACTION_MAIN);
intent.addCategory(Intent.CATEGORY_HOME);
startActivity(intent);
System.exit(0);
}
}
第四步,根据exit()方法中的的消息,写一个Handler
[java] view
plaincopy
Handler mHandler = new Handler() {
@Override
public void handleMessage(Message msg) {
// TODO Auto-generated method stub
super.handleMessage(msg);
isExit = false;
}
};
实现的基本原理就是,当按下BACK键时,会被onKeyDown捕获,判断是BACK键,则执行exit方法。
在exit方法中,会首先判断isExit的值,如果为false的话,则置为true,同时会弹出提示,并在2000毫秒(2秒)后发出一个消息,在Handler中将此值还原成false。
如果在发送消息间隔的2秒内,再次按了BACK键,则再次执行exit方法,此时isExit的值已为true,则会执行退出的方法
[java] view
plaincopy
boolean isExit;
第二步,重写Activity中onKeyDown方法
[java] view
plaincopy
@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
if (keyCode == KeyEvent.KEYCODE_BACK) {
exit();
return false;
} else {
return super.onKeyDown(keyCode, event);
}
}
第三步,写一个退出方法,名称就是onKeyDown中的exit()
[java] view
plaincopy
public void exit(){
if (!isExit) {
isExit = true;
Toast.makeText(getApplicationContext(), "再按一次退出程序", Toast.LENGTH_SHORT).show();
mHandler.sendEmptyMessageDelayed(0, 2000);
} else {
Intent intent = new Intent(Intent.ACTION_MAIN);
intent.addCategory(Intent.CATEGORY_HOME);
startActivity(intent);
System.exit(0);
}
}
第四步,根据exit()方法中的的消息,写一个Handler
[java] view
plaincopy
Handler mHandler = new Handler() {
@Override
public void handleMessage(Message msg) {
// TODO Auto-generated method stub
super.handleMessage(msg);
isExit = false;
}
};
实现的基本原理就是,当按下BACK键时,会被onKeyDown捕获,判断是BACK键,则执行exit方法。
在exit方法中,会首先判断isExit的值,如果为false的话,则置为true,同时会弹出提示,并在2000毫秒(2秒)后发出一个消息,在Handler中将此值还原成false。
如果在发送消息间隔的2秒内,再次按了BACK键,则再次执行exit方法,此时isExit的值已为true,则会执行退出的方法
相关文章推荐
- 监听back按键,再次点击退出应用
- Android应用安装后打开,按Home键切出应用后再点击桌面图标返回导致应用重启问题及再次把app唤醒到前台
- app运行中点击home后再次点击app图标进入应用时重复登录的方法()
- 安卓开发中,release安装包安装后,打开app后再按home键,再次点击程序图标app再次重新启动的解决办法
- (安卓APP)关于使用偏好设置储存数据,首次登录应用到新手指导页,再次登录直接到主页面简单的相关实现代码
- 安卓开发中,release安装包安装后,打开app后再按home键,再次点击程序图标app再次重新启动的解决办法
- android实现通过浏览器点击链接打开本地应用(APP)并拿到浏览器传递的数据
- android实现通过浏览器点击链接打开本地应用(APP)并拿到浏览器传递的数据
- 让iOS的应用程序在点击设备的home键返回桌面后,再次打开应用进入启动画面
- android点击返回键退出应用的实现
- Android 实现点击两次BACK键退出应用
- android中如何实现连续点击返回键退出整个应用 android两次返回退出应用
- Android 实现点击两次BACK键退出应用
- (转)Windows Phone 点击按钮退出当前应用(真正解决篇)
- 安卓按home键之后,再次点击程序图标避免再次重新启动程序解决办法
- 上传APP到安卓第三方应用市场步骤
- android实现通过浏览器点击链接打开本地应用(APP)并拿到浏览器传递的数据
- android安卓点击通知栏,返回应用,而不重启应用
- Windows Phone 点击按钮退出当前应用(真正解决篇)
- 从应用列表再次点击应用,如何恢复到上次浏览的页面呢?