来自Application的Android onResume

时间:2012-06-26 19:55:45

标签: android onresume

我的客户希望他们的应用在应用程序启动时或从睡眠状态唤醒时始终显示“警告”屏幕。我已经尝试在我的主活动中创建一个onResume()事件(每个其他活动继承自),但这会导致无限循环:

  1. 调用Activity,onResume()被触发
  2. 警告屏幕触发,导致呼叫活动暂停
  3. 用户单击“确定”接受该消息,将用户返回到先前的屏幕
  4. 活动被唤醒
  5. 转到1
  6. 即使我可以绕过无限循环,警告屏幕也会在新活动加载时触发。这就是我喜欢称之为坏事。

    有没有办法模仿onResume()事件,但是在应用程序级别而不是在活动级别,这样我可以避免这些情况,但仍会在应用程序唤醒时弹出警告?

3 个答案:

答案 0 :(得分:3)

为什么不使用SharedPreferences。

http://android-er.blogspot.com/2011/01/example-of-using-sharedpreferencesedito.html

存储弹出窗口的时间,如果它在5分钟内,或者其他东西,则不要弹出它。

这会打破你的循环而不会完全惹恼用户。

答案 1 :(得分:0)

我会编写一个方法来弹出警告,并在onPause中设置一个全局标志。检查onResume中的全局标志,然后在弹出方法中重置它。简化的伪代码...

class myApplication Extends Application{
    boolean appIsPaused = false;
}

class myActivity Extends Activity{

  @Override
  protected void onPause(){
      appIsPaused = true;
  }

  @Override
  protected void onPause(){
      if (appIsPaused){
          showPopup();
      }
  }

  public void showPopUp{

     if (!appIsPaused){
        return;
     }

     appIsPaused = false;

  }


}

答案 2 :(得分:0)

您可以使用AlertDialog显示警告消息,它可以解决您的问题。

否则,尝试从应用程序的onStart或onRestart启动警告屏幕? 这是android生命周期,如果它可以提供帮助:http://developer.android.com/reference/android/app/Activity.html