0

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

  1. Activity 被调用, onResume() 被触发
  2. 警告屏幕触发,导致呼叫活动暂停
  3. 用户单击 OK 接受消息,将用户返回到上一个屏幕
  4. 活动被唤醒
  5. 转到 1

即使我可以绕过无限循环,每当加载新活动时,警告屏幕也会触发。这就是我喜欢称之为坏事的原因。

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

4

3 回答 3

3

为什么不直接使用 SharedPreferences。

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

存储弹出窗口的时间,如果是在 5 分钟内,或者其他什么,那么不要弹出它。

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

于 2012-06-26T19:58:34.557 回答
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;

  }


}
于 2012-06-26T20:07:07.477 回答
0

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

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

于 2012-06-26T20:07:30.393 回答