3

何か間違ったことをしているのかどうかはわかりませんが、同じようなバグに遭遇したばかりなので、別のバグである可能性もあります。これを確認したり、解決策を知ったりできるかどうか疑問に思いました。

さて、2つのアクティビティAとBを含むタブホストがあります。

Aは「最初の」タブです。だから私が次のことをすると:

  • (Aが開いています)
  • スイッチB
  • アプリを閉じる
  • プロセスを強制終了します
  • アプリをもう一度開く
  • (Bが表示されます)

その後、私はすべてが大丈夫です。ログを使用すると、「onRestoreInstanceState」がAとBの両方に対して呼び出されたことがわかります。

今、私は次のことをします:

  • (Bが開いていますが、Aに切り替えていません)
  • スイッチB
  • アプリを閉じる
  • プロセスを強制終了します
  • アプリをもう一度開く
  • (Bが表示されます)

次に、「onRestoreInstanceState」がBに対して呼び出されますが、Aに対しては呼び出されません。getは「onCreate」のnullバンドルです。

Aに切り替えてからBに戻すと、再び問題ありません。その後、上記の動作を繰り返すことができます。

これは少し紛らわしいように聞こえますが、誰かが以前にこれに遭遇したことがありますか?

よろしく、クラゲ

編集:

他のタブでもこれを繰り返しました(Aを開いたままにし、アクティビティを強制終了し、復元し、再度強制終了し、再度復元します)。次に、意図的にタブを切り替えるまで、Bの「onCreate」は呼び出されません。以前に復元されたかどうかに関係なく、常にSavedInstanceバンドルを取得します。だからすべてが大丈夫です。

Edit2:

例外として、回転の変更についても同じことが言えます。真剣にこれまで誰もこれに気づいていませんか?これは、2.2エミュレータと2.3電話の両方で機能します。

4

0 に答える 0