Activityに関するPart3。Activityの遷移をコールバックの視点からまとめる。

Part1~Part2で記述したさまざまなActivityの遷移シナリオを実行したときのActivityコールバックをダンプして時系列表で並べてみた。

一般的なStandardアクティビティをスタックするシナリオはActivityのライフサイクルの基本中の基本であり、どういったタイミングで各コールバックが呼ばれるかを念頭に入れて実装する。SingleTopの開始シナリオでは、”Single~”と名の付くタイプは共通してonNewIntentが再開時にコールされることが特徴。

SingleTaskアクティビティの特徴として、再開時に上部にスタックされたアクティビティのonDestroyがコールされて削除されることに注意する。その後、onNewIntentonRestartonStartがコールされる。

続いてIntent.setFlags()メソッドでフラグ設定するシナリオ。FLAG_ACTIVITY_CLEAR_TOPでトップと同一アクティビティを開始すると、新しくアクティビティを生成した後、古いアクティビティが削除され、再生成されるイメージ。FLAG_ACTIVITY_NEW_TASKはStandardアクティビティの振る舞いと同じだが、タスクが新規作成される。

ルートアクティビティclearTaskOnLaunchtrueの場合、バックグラウンドから再開したときにルートアクティビティを除いて全てonDestroyがコールされて削除される。

finishOnTaskLaunchtrueであるアクティビティはルートアクティビティを除いて、再開時に上から順にonDestroyがコールされるのがわかる。上部のアクティビティが削除されて顔を出したアクティビティはonRestartがコールされる。

0 Comments

Post a Comment

Emailは公開、ソースに出力されません。*印のフィールドは必須入力です。
Your email is never published nor shared.Required fields are marked *

*