11

現在のアプリケーションでは、Activity を初めてロードしたときに onResume 関数がトリガーされます。Activity Lifecycleを調べましたが、これを防ぐ方法が見つかりませんでした。

SharedPreferences を使用せずに、アクティビティが初めて読み込まれるときに onResume() 関数が読み込まれないようにすることはできますか?

4

1 に答える 1

34

まず、RvdK が言うように、Android アクティビティのライフサイクルを変更するべきではありません。それに準拠するには、おそらくアクティビティの動作を再設計する必要があります。

とにかく、これは私が見る最良の方法です:

1.アクティビティ内にブール変数を作成します

public class MyActivity extends Activity{
  boolean shouldExecuteOnResume;
  // The rest of the code from here..
}

2. onCreate 内で false に設定します。

public void onCreate(){
  shouldExecuteOnResume = false
}

3.次に、onResume で:

public void onResume(){
  if(shouldExecuteOnResume){
    // Your onResume Code Here
  } else{
     shouldExecuteOnResume = true;
  }

}

このようにしてonResume、最初は実行されませんが (shouldExecuteOnResumeは false)、代わりにアクティビティが読み込まれるたびに実行されます ( shouldExecuteOnResumetrue になるため)。その後、アクティビティが (ユーザーまたはシステムによって) 強制終了された場合、次に読み込まれるときにonCreateメソッドが再度呼び出されるためonResume、実行されません。

于 2013-03-29T10:13:10.640 に答える