getIntent()で取得したIntent
2149 ワード
getIntent()
によって得るIntent
を用いてActivity
(Activity
の開き自体)を開く場合、Activity
はonDestroy()
の方法を歩かないことが観察する.では、以下の2つのIntentを取得する方法はActivityを開くとき、何か本質的な違いがありますか?
Intent intent1 = getIntent(); // MainActivity
Intent intent2 = new Intent(MainActivity.this, MainActivity.class);
intent2
を使用してstartActivity()
に行くと、新しいActivity
が開きます.intent1
を用いるとできない.<activity android:name=".MainActivity">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
intent-filter>
activity>
このように定義、かつ直接
startActivity(getIntent())
である場合、システムはLauncher(アプリケーションエントリ)の動作でIntentを作成することがデフォルトであるため、アプリケーションが起動した場合、何の反応もない(バックグラウンドに切り替えると、呼び出し時にアプリケーションをフロントに戻す).startActivity(new Intent(...))
は上記問題がない.また、
onDestroy()
は、Activity
またはandroid:noHistory="true"
/FLAG_ACTIVITY_CLEAR_TOP
のようなflagが宣言する場合を除き、新しいFLAG_ACTIVITY_CLEAR_TASK
が起動すると呼び出されるわけではない.