重複の可能性あり:
Android アクティビティ ライフサイクル - onPause() と OnStop() の違い
私は疑問に思っていました -onCreate()
とメソッドの違いは何ですかonStart()
?
onStart()
これは冗長なメソッドだと思います。onCreate()
常に呼び出されます (少なくとも私の最後の 2 つのプロジェクトでは)。
誰かその違いを説明できますか?
ベストアンサー1
アクティビティのライフサイクルを見てみましょう。
以下の画像と文書の抜粋は、Androidオープンソースプロジェクトによって共有および、クリエイティブ・コモンズ 2.5 表示ライセンス。
どこ
***onCreate()***
アクティビティが最初に作成されるときに呼び出されます。ここで、ビューの作成、リストへのデータのバインドなど、通常の静的セットアップをすべて実行する必要があります。このメソッドは、アクティビティの以前のフリーズ状態 (存在する場合) を含むバンドルも提供します。常に onStart() が続きます。
***onStart()***
アクティビティがユーザーに表示されるようになったときに呼び出されます。アクティビティがフォアグラウンドになった場合は onResume() が呼び出され、非表示になった場合は onStop() が呼び出されます。
そして、これらのメソッドが呼び出されるのを見るための簡単なクラスを書くことができます。次のコードは、にあるサンプルとデモアプリケーションから改変して簡略化したものです。ライフサイクルメソッドの詳細ライフサイクルを理解するのに非常に良い記事です。
public class TestActivity extends Activity {
/** Called when the activity is first created. */
private final static String TAG = "TestActivity";
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
Log.i(TAG, "On Create .....");
}
/* (non-Javadoc)
* @see android.app.Activity#onDestroy()
*/
@Override
protected void onDestroy() {
super.onDestroy();
Log.i(TAG, "On Destroy .....");
}
/* (non-Javadoc)
* @see android.app.Activity#onPause()
*/
@Override
protected void onPause() {
super.onPause();
Log.i(TAG, "On Pause .....");
}
/* (non-Javadoc)
* @see android.app.Activity#onRestart()
*/
@Override
protected void onRestart() {
super.onRestart();
Log.i(TAG, "On Restart .....");
}
/* (non-Javadoc)
* @see android.app.Activity#onResume()
*/
@Override
protected void onResume() {
super.onResume();
Log.i(TAG, "On Resume .....");
}
/* (non-Javadoc)
* @see android.app.Activity#onStart()
*/
@Override
protected void onStart() {
super.onStart();
Log.i(TAG, "On Start .....");
}
/* (non-Javadoc)
* @see android.app.Activity#onStop()
*/
@Override
protected void onStop() {
super.onStop();
Log.i(TAG, "On Stop .....");
}
}
Android ドキュメントへのリンク活動詳細については。