oncreate()とonstart()の違いは? [複製
-
25-10-2019 - |
質問
私は考えていた - 違いは何ですか onCreate()
と onStart()
方法?
そうだと思います onStart()
冗長な方法です。 onCreate()
常に(少なくとも私の最後の2つのプロジェクトで)呼ばれます。
誰かが違いを説明できますか?
解決
活動のライフサイクルをご覧ください
どこ
***onCreate()***
アクティビティが最初に作成されたときに呼び出されます。これは、通常の静的セットアップのすべてを実行する必要がある場所です。ビューの作成、データをリストにバインドするなどです。この方法では、アクティビティの凍結状態がある場合は、アクティビティの凍結状態を含むバンドルも提供します。常にonstart()が続きます。
***onStart()***
アクティビティがユーザーに表示されているときに呼び出されます。その後、アクティビティが前面に来る場合はOnResume()が続きます。
そして、あなたはあなたの簡単なクラスを書いて、これらの方法が呼び出すときに見てみることができます
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 .....");
}
}
これがあなたの混乱をクリアすることを願っています。
そして、見てください ここ 詳細については。
詳細にライフサイクル方法 非常に良い例とデモアプリケーションです。これは、ライフサイクルを理解するための非常に良い記事です。
他のヒント
onCreate()
アクティビティが作成されたときにメソッドが呼び出され、アクティビティライフサイクル全体で1回だけ呼び出されます。一方 onStart()
アクティビティが停止されたときに呼び出されます...私はそれが背景になったことを意味します onStop()
メソッドはOSによって呼び出されます。 onStart()
アクティビティライフサイクルで複数回呼ばれる場合があります。詳細については、こちらをご覧ください