如何取消onPause或onStop方法?

时间:2012-12-20 15:47:26

标签: android android-activity onpause

已编辑& 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;
}


感谢大家的帮助。
祝你玩得愉快。

4 个答案:

答案 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!!
       }
 }
}