关于按两次返回退出程序的有关问题。
关于按两次返回退出程序的问题。求助!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
我做了一个程序,大致内容是,第一次运行程序时,出现导航页,就类似于微信那样的介绍页。以后运行就不会出现这样的导航页了。
我的问题来了:第一次运行程序,进入主程序,按两次返回键,并没有退出程序,直接跳到了导航页,又进入主程序,然后按两次返回,又跳到导航页。这样无限循环了。
可是,第二次以后运行程序就不会这样了,点开程序,直接进入程序主界面,然后按两次返回键,成功退出程序。这是为什么?能有人解决一下吗?
我把按两次返回退出程序的代码贴上:
------解决方案--------------------
第一,进入主界面时,你要finish掉启动页;
第二,修改你Activity的lunchmode;
------解决方案--------------------
导航页跳转的时候,要finish
------解决方案--------------------
你不是写了按下key。back的事件么,第一次它可能没有加载到,我是这么认为的不知道是不是,,,
------解决方案--------------------
你只需要重写onBackPressed()方法就好了。
首先你声明一个成员变量long mfirstPressed;
------解决方案--------------------
onBackPressed可以参考其他应用怎么写的
我做了一个程序,大致内容是,第一次运行程序时,出现导航页,就类似于微信那样的介绍页。以后运行就不会出现这样的导航页了。
我的问题来了:第一次运行程序,进入主程序,按两次返回键,并没有退出程序,直接跳到了导航页,又进入主程序,然后按两次返回,又跳到导航页。这样无限循环了。
可是,第二次以后运行程序就不会这样了,点开程序,直接进入程序主界面,然后按两次返回键,成功退出程序。这是为什么?能有人解决一下吗?
我把按两次返回退出程序的代码贴上:
private static Boolean isExit =false;
private static Boolean hasTask =false;
Timer tExit =new Timer();
TimerTask task =new TimerTask() {
@Override
public void run() {
isExit =false;
hasTask =true;
}
};
@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
// TODO Auto-generated method stub
if (keyCode == KeyEvent.KEYCODE_BACK) {
if(isExit ==false ) {
isExit =true;
Toast.makeText(this, "再次点击退出程序", Toast.LENGTH_SHORT).show();
if(!hasTask) {
tExit.schedule(task, 2000);
}
} else {
finish();
System.exit(0);
}
}
return false;
}
------解决方案--------------------
第一,进入主界面时,你要finish掉启动页;
第二,修改你Activity的lunchmode;
------解决方案--------------------
导航页跳转的时候,要finish
------解决方案--------------------
你不是写了按下key。back的事件么,第一次它可能没有加载到,我是这么认为的不知道是不是,,,
------解决方案--------------------
你只需要重写onBackPressed()方法就好了。
首先你声明一个成员变量long mfirstPressed;
@Override
public void onBackPressed() {
if (System.currentTimeMillis() - mFirstPressed > 1000) {
Toast.makeText(this, "再按一次就退出", Toast.LENGTH_SHORT).show();
mFirstPressed = System.currentTimeMillis();
} else {
super.onBackPressed();
}
}
------解决方案--------------------
onBackPressed可以参考其他应用怎么写的