0

次のシナリオを想像してみてください。

  • アクティビティAにはローカル変数があり、それを保存するためにstate実装されます。onSaveInstanceState()バンドルが渡された場合、onCreate()またはバンドルに含まれている場合に復元するコードonRestoreInstanceState()があります。
  • アクティビティスタックはA->B->Cです。
  • リソースが少ないため、OSによって収集されたガベージ。
  • Cから、との組み合わせでAを前倒しするようにお願いしFLAG_ACTIVITY_CLEAR_TOPますFLAG_ACTIVITY_SINGLE_TOP

ドキュメントによると、このフラグコンボにより、要求されたアクティビティは再開されません。onNewIntent()代わりに、既存のインスタンスで呼び出す必要があります。

ただし、GCのため、明らかにAを再起動する必要があります。

私の質問は:どういうわけか変数stateが復元されるのでしょうか?

私はそれが起こるために次の方法を見ることができます:

  • onCreate(Bundle savedInstanceState)-これは確実に呼び出されますが、バンドルはonSaveInstanceState()GC中に保存されたものですか?
  • onRestoreInstanceState(Bundle savedInstanceState)-呼び出されますか?

ありがとう!

4

0 に答える 0