【问题标题】:How to cancel the onPause or the onStop method?如何取消 onPause 或 onStop 方法?
【发布时间】:2012-12-08 04:23:10
【问题描述】:

EDITED & SOVLED(下)

我需要在用户离开 Activity 时进行最后一次检查。
如果这次检查的结果不成功,我需要不让他出去。

我需要一个这样的:

@Override
protected void onPause() {
    if (comprobations == true){
        super.onPause();
        } else {
            NOT EXIT!!
        }
}

这看起来很简单 :p 但我试过但没有运行。

谁能帮帮我?

谢谢

解决方案:

感谢大家的快速解答!
他们每个人都帮助了我,我也学到了一些新东西。

我已经尝试过onBackPressed() 方法,这就是我想要的。 我知道用户仍然可以通过按 Home 键和其他方式退出 App,但我只是想防止用户在返回主菜单时认为我的 App 的配置还可以;如果他们想从应用程序中出去,没关系。
所以我会这样做:

@Override
public void onBackPressed() {
    Log.d(LOGTAG, "onBackPressed");
    if (COMPROBATIONS() == true){
        super.onBackPressed();
    } else {
        SHOW WARNING!
    }
    return;
}


感谢大家的帮助。
玩得开心。

【问题讨论】:

  • 我有轻微的感觉这是不可能的,因为这将允许简单的 kiosk 模式(这在无根的 Android 中并不完全可能),另外我认为 Android 作为操作系统可以处理这些情况(想想停止你的由于内存不足等原因由操作系统应用)。

标签: android android-activity onpause


【解决方案1】:

您无法阻止用户离开您的活动。一旦调用了 onPause 方法,应用程序就会进入后台,您无法阻止它。

如果您真的想在用户离开您的活动时做某事,可以通过覆盖onBackPressed() 方法来覆盖后退按钮并让它执行一些其他操作。但是,用户仍然可以通过多种方式离开(例如按下主页按钮)。

【讨论】:

  • 谢谢,这是我一直在寻找的,只是为了在返回之前管理一些操作以防止使用。我在考虑生命周期,而不是“事件”;我需要多读一点。谢谢。
  • 没问题!是的,这些事件对于让您的应用程序按照您希望的方式运行非常有帮助。生命周期方法更多地是处理无论如何都发生的情况的一种方式。
【解决方案2】:

简单的答案是“你不能这样做”或“这是不可能的”。当(系统)资源不足时,您的应用程序无法阻止用户关闭它或系统杀死它。

而且,如果您要与某些内置应用程序(例如三星的设置)进行比较,请记住,这些“特殊”应用程序可以访问操作系统的内部,并且与您的应用程序不在同一级别上运行。

【讨论】:

    【解决方案3】:

    您不能这样做,因为调用它们的是 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;
    
        }
    }
    

    【讨论】:

      【解决方案4】:

      这可以通过覆盖后退按钮来实现。这样做:

      public boolean onKeyDown(int keyCode, KeyEvent event) {
      
      if(keyCode==KeyEvent.KEYCODE_BACK)
      {
        if (comprobations == true){
                finish();
             } else {
                NOT EXIT!!
             }
       }
      }
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2012-07-08
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2017-03-17
        • 1970-01-01
        相关资源
        最近更新 更多