私はこのバグに何日も苦労しています。このバグはまれに発生する可能性が高く、なぜこれが発生するのかわかりません。
何が起こるか:
分割画面モード (上部にある私のアプリと下部に別のアプリ) では、特定のアクティビティが終了すると、バックスタック アクティビティ (私の場合は主に MainActivity)onStart()
が呼び出されることはなく、分割画面モードはアプリが停止しているため終了したように見えます。しかし、概要ボタンはまだ分割画面モードのように見え、分割画面ボタンをタップすると、MainActivityonStart()
が最終的に呼び出され、再び分割画面モードに戻ります。
ログは次のようになります
MainActivity onStop()
ProblematicActivity onCreate()
...
ProblematicActivity onDestroy()
//and nothing!
これは、次の条件下では発生しません。
- 問題のあるアクティビティが非分割画面モードで呼び出されたが、分割画面モードで終了した場合。(
resumed
との両方paused
) - 問題のあるアクティビティが分割画面モードで呼び出されたが、アプリがタップされた (つまり、アクティビティが
resumed
状態になっている) 場合
これは、次の場合にのみ発生します。
- 問題のあるアクティビティが分割画面モードで開始され、アクティビティがタップされていない (つまり、アクティビティが
paused
状態になっている)
アクティビティのライフサイクル コールバックを徹底的にチェックし (少なくともそう思う)、ログを何度も調べましたが、BackStack アクティビティが呼び出されない理由がわかりません。
検索してみましたが、あまり参考になる情報はありませんでした。誰かが私のような経験/問題を抱えていましたか?
ありがとう。
追加情報
私のアクティビティスタックは次のようになります
MainActivity
アクティビティ 2
アクティビティ 1
フラグメント 1
サーバーは機能を開始するためにアプリを送信し、その後アクティビティ 2 を開始し、アクティビティ 1 を開始し、フラグメント 1 はアクティビティ 1 にあります (ユーザーが実際に見るのはフラグメント 1 です) アクティビティとフラグメントはアクティビティ 2 まで十分に破棄されます。しかし、そこから MainActivity (またはそれがどんなアクティビティであっても) は AndroidSystem が決して呼び出さないため、表示されませんonStart
。