已编辑& SOVLED(下方)
我需要在用户离开活动时进行最后检查 如果这次检查的结果不成功,我不能让他出去。
我需要一种:
@Override
protected void onPause() {
if (comprobations == true){
super.onPause();
} else {
NOT EXIT!!
}
}
看起来很容易:但是我尝试过,不要跑。
任何人都可以帮助我?
Thaanks
SOLUTION:
感谢大家的快速解答!
他们每个人都帮助了我,我学到了一些新东西。
我尝试了onBackPressed()
方法,这就是我想要的。
我知道用户仍然可以通过按Home键和其他方式退出App,但我只是想阻止用户在返回主菜单时认为我的应用程序配置正常;如果他们想从App中出来,那没关系
所以我会做这样的事情:
@Override
public void onBackPressed() {
Log.d(LOGTAG, "onBackPressed");
if (COMPROBATIONS() == true){
super.onBackPressed();
} else {
SHOW WARNING!
}
return;
}
感谢大家的帮助。
祝你玩得愉快。
答案 0 :(得分:5)
您无法阻止用户离开您的活动。一旦调用了onPause方法,应用程序就会进入后台,你无法阻止它。
如果您确实想在用户离开活动时执行某些操作,则可以通过覆盖on onBackPressed()
方法覆盖后退按钮,并让其执行其他操作。但是,用户仍然可以通过多种方式离开(例如按下主页按钮)。
答案 1 :(得分:4)
简单的答案是“你不能这样做”或“这是不可能的”。当应用程序(系统)资源不足时,您的应用程序无法阻止用户关闭它或系统杀死它。
并且,如果您要与某些内置应用程序(例如Samsung的设置)进行比较,请记住这些“特殊”应用程序可以访问操作系统的内部,并且不会与您的应用程序在同一级别上运行。
答案 2 :(得分:0)
你无法做到这一点,因为Android会调用它们。
在完成()活动之前进行检查,或者收回后退键。
if (!comprobations){
this.finish():
}
或者:
public boolean onKeyDown(int keyCode, KeyEvent event){
if(keyCode == KeyEvent.KEYCODE_BACK) {
if (!comprobations){
this.finish():
return true;
}
return false;
}
}
答案 3 :(得分:0)
这可以通过覆盖后退按钮来实现。这样做:
public boolean onKeyDown(int keyCode, KeyEvent event) {
if(keyCode==KeyEvent.KEYCODE_BACK)
{
if (comprobations == true){
finish();
} else {
NOT EXIT!!
}
}
}