0

Androidのドキュメントには、タスクとバックスタックの完全な説明が記載されていますが、次の質問に対する答えは見つかりません。タスク(以前はシステムによって強制終了された)が約であるときに、アクティビティが復元(再作成)される順序はどれですか。再びフォアグラウンドになります。

たとえば、タスクにアクティビティA-> B-> Cがあり、バックグラウンドで強制終了された場合、ユーザーがタスクに戻ると、連続するすべてのアクティビティの順序onCreateonRestoreInstanceStateイベント呼び出しはどうなりますか?Aは常にBの前に完全に復元され、BはCの前に完全に復元されることを当然のことと見なすことができますか?

この質問は、Google Playのエラーログから発生します。これにより、子アクティビティの呼び出し中にメインアクティビティがまだ復元されていないことが疑われます。

4

1 に答える 1

0

いくつかのテストに基づく短い(自己)回答として、アクティビティの復元の順序はスタックの上から下、つまりアクティビティが作成された最初の順序とは逆の順序であると報告しています。質問の例の続きでは、C->B->Aになります。

最も重要なことは、スタック全体ではなく、最上位のアクティビティのみが一度に復元されることです(これは、より直感的で一貫性があります、imho)。ユーザーが最上位のアクティビティを閉じ、次のアクティビティが新しい最上位のアクティビティになりそうになった後でのみ、その単一のアクティビティが復元されます。

アクティビティごとに、ドキュメントに従って一連のonCreate、、が実行されます。onStartonRestoreInstanceState

于 2012-12-22T21:30:12.223 に答える