0

私のクライアントは、アプリケーションの起動時またはスリープからの復帰時に、常に「警告」画面を表示することを望んでいます。マスター アクティビティ (他のすべてのアクティビティの継承元) で onResume() イベントを作成しようとしましたが、これにより無限ループが発生します。

  1. アクティビティが呼び出され、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 でそのグローバル フラグを確認し、popup メソッドでリセットします。簡略化された疑似コード...

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 に答える