私は問題があります。Android アプリケーションを初めて起動すると、メイン アクティビティでonCreate
と の両方onResume
が呼び出されます。しかし、私はonCreateだけと呼ばれたいです。
私に何ができる?
SDKドキュメントによると、表示されているのは意図された動作です。アクティビティ-アクティビティライフサイクルのドキュメントのフローチャートをご覧ください。
プログラム的には、インスタンスメンバーを保持して、onResumeが以前に呼び出されたかどうかを追跡することで、これを克服できます。最初に呼び出されたときに、変数を設定して、egを返します。
private boolean resumeHasRun = false;
@Override
protected void onResume() {
super.onResume();
if (!resumeHasRun) {
resumeHasRun = true;
return;
}
// Normal case behavior follows
}
Activity
の方法を使うのが正解ですonRestart()
。これはおそらくあなたが探していたものです。
これがアクティビティのライフサイクルのしくみであるため、何もできません。
ライフサイクルを示す図については、http://developer.android.com/guide/topics/fundamentals/activities.html#Lifecycleを参照してください。
API でわかるように、Activity Lifecycle は、アクティビティを表示する前に常に onResume を呼び出します。 http://developer.android.com/reference/android/app/Activity.html#ActivityLifecycle
最初のアクセス用にグローバル ブール値を作成し、それを false に設定できると思います。次に、onResume をオーバーライドして、変数を確認します。false の場合は true に設定し、true の場合は super.onResume を呼び出します。
動作するはずですが、より簡単に処理できるかどうかはわかりません。また、ここで SDK にアクセスしてテストすることもできません。