現在のアプリケーションでは、Activity を初めてロードしたときに onResume 関数がトリガーされます。Activity Lifecycleを調べましたが、これを防ぐ方法が見つかりませんでした。
SharedPreferences を使用せずに、アクティビティが初めて読み込まれるときに onResume() 関数が読み込まれないようにすることはできますか?
現在のアプリケーションでは、Activity を初めてロードしたときに onResume 関数がトリガーされます。Activity Lifecycleを調べましたが、これを防ぐ方法が見つかりませんでした。
SharedPreferences を使用せずに、アクティビティが初めて読み込まれるときに onResume() 関数が読み込まれないようにすることはできますか?
まず、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)、代わりにアクティビティが読み込まれるたびに実行されます ( shouldExecuteOnResume
true になるため)。その後、アクティビティが (ユーザーまたはシステムによって) 強制終了された場合、次に読み込まれるときにonCreate
メソッドが再度呼び出されるためonResume
、実行されません。