1. ホーム
  2. android

[解決済み] onCreate()とonStart()の違い?[重複あり]

2022-04-26 05:44:51

質問

<ブロッククオート

重複の可能性があります。

Android Activity Life Cycle - onPause()とOnStop()の違いについて

疑問に思ったこと -。 とはどのような違いがあるのでしょうか? onCreate()onStart() メソッドですか?

と思います。 onStart() は冗長なメソッドです。 onCreate() は常に呼び出されます(少なくとも私の最後の2つのプロジェクトでは)。

この違いを説明できる人はいますか?

解決方法は?

アクティビティーのライフサイクルを見てみましょう。

どこ

***onCreate()***

アクティビティが最初に作成されたときに呼び出されます。ここで、ビューの作成、リストへのデータのバインドなど、通常の静的なセットアップをすべて行う必要があります。また、このメソッドは、アクティビティが以前にフリーズした状態を含むBundleを提供します(ある場合)。 この後、常に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 .....");
    }
}

これで混乱が解消されるといいのですが。

そして、ご覧ください。 こちら をご覧ください。

ライフサイクルメソッドの詳細 は、非常に良い例とデモアプリケーションで、ライフサイクルを理解するのに非常に良い記事です。