A、B、C の 3 つのアクティビティがあるとします。通常は C から戻るときは C → B → A の順ですが、Activity C ではホームボタンを押してホーム画面に移動します。アプリは久しぶりに殺されますか?それが殺された場合、アプリに戻ると、バックシーケンスはまだ正しいですか?
5 に答える
ここにあるドキュメントを読む必要があります。
http://developer.android.com/reference/android/app/Activity.html
アプリが終了した場合、再起動すると履歴なしで開始され、バックスタックはなく、アプリはアクティビティ A に移動します。これは、次のようにマニフェストで設定されたデフォルトのアクティビティです。
<activity
android:theme="@android:style/Theme.NoTitleBar.Fullscreen"
android:label="@string/app_name"
android:name=".SplashScreen" >
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
(上記は私のアプリの1つでスプラッシュスクリーンを起動し、それが終了した場合、これが開始されるアクティビティです)
さらに役立つように、ライフサイクル図を添付しました。
が呼び出された場合にわかるようonDestroy()
に、アプリのライフサイクルは終了します。それが再び始まると、新しいライフサイクルが始まります。
1. 常に以下のいずれかの状態にありますActivity
。
私。 Resumed:
アクティビティはフォアグラウンドにあります。
ii。 Paused :
別のアクティビティはフォアグラウンドにありますが、this activity
まだ表示されています
iii。 Stopped:
この停止したアクティビティは完全に非表示になります。
2.あなたのケースはStopped
州です。システムは、メソッドを呼び出すfinish()
か、単にそのプロセスを強制終了することで、この停止アクティビティを強制終了できます。
したがって、バックスタックにAアクティビティのみを使用して、最初から開始します。
アプリが強制終了されたときにアプリを起動すると、メイン アクティビティが開きます。
アプリケーションが強制終了されると、マニフェストで宣言したメイン アクティビティから開始されます。
いいえ、アプリが強制終了されたときにアプリのタスク状態が保存されず、メイン アクティビティに戻るため、これは A になります