ジェリービーンズ4.1.1で実行しているときに、アプリで奇妙な動作が発生します。アクティビティを開始し、戻るボタンを押して最初のアクティビティに戻ると、呼び出して再作成します。これonCreate
も処理します。最初のアクティビティで構成が変更されたため、構成の変更時に再作成されませんが、何も行われませんでした。!!!! ジェリービーンズの活動ライフサイクルが奇妙な振る舞いをする理由。あなたは私が何を意味するかを見ることができます、単純なAndroidプロジェクトを作成して2つのアクティビティを作成し、最初のアクティビティからアクティビティに移動して戻るボタンを押すと、アクティビティ1の作成のログが呼び出されます!!!!
3 に答える
リソースが必要であると OS が判断した場合、OS がいつでもバックグラウンドのアクティビティを強制終了しないという保証はありません。推測にすぎonCreate
ませんが、システムが最初のアクティビティに戻る前に強制終了するため、このような場合に呼び出される可能性があります。
編集: http://developer.android.com/guide/components/activities.html#Lifecycle
アクティビティが一時停止または停止している場合、システムは終了を要求する (finish() メソッドを呼び出す) か、単にプロセスを強制終了することによって、メモリから削除できます。アクティビティが (終了または強制終了された後に) 再び開かれるときは、最初から最後まで作成する必要があります。
ここにあなたのための別の参照があります:
http://developer.android.com/training/basics/activity-lifecycle/recreating.html http://developer.android.com/training/basics/activity-lifecycle/starting.html
最初のリンクで:
アクティビティが現在停止していて長期間使用されていない場合、またはフォアグラウンド アクティビティがより多くのリソースを必要とするため、システムがバックグラウンド プロセスをシャットダウンしてメモリを回復する必要がある場合、システムはアクティビティを破棄することもあります。
...
ただし、システムの制約により (通常のアプリの動作ではなく) アクティビティが破棄された場合、実際の Activity インスタンスはなくなっても、システムはそれが存在していたことを記憶しているため、ユーザーがそこに戻ると、システムは新しいアクティビティを作成します。破棄されたときのアクティビティの状態を記述する一連の保存済みデータを使用するアクティビティのインスタンス。システムが以前の状態を復元するために使用する保存データは「インスタンス状態」と呼ばれ、バンドル オブジェクトに格納されたキーと値のペアのコレクションです。
- 電話設定画面を開く
- 開発者オプションをクリックします(存在しない場合は、電話について5〜6回押します)
- アプリカテゴリの開発者向けオプションで、アクティビティフラグを保持しないのチェックを外します