このシナリオを想像してください:Fragment
にPager
があります。ページャー(およびフラグメント)を所有しているActivity
が停止し、最終的に一時的に破棄されるように、他のアプリに切り替えようとします。
したがって、アクティビティに戻ると、Fragment
のコールバックonCreate
、oncreateview
などが呼び出されます。しかし、フラグメントのonDestroy
コールバックは以前に呼び出されませんでした! 「onStop」の後、フラグメントはすぐに破棄されるようです。それは正常な動作ですか? Activity
がonDestroy
を呼び出さずに破棄されたためでしょうか?
この質問を見てください: なぜ呼び出されることが保証されていないのにonDestroy()を実装するのですか?
基本的に、onDestroy()は、finish()を呼び出した場合にのみ呼び出されることが保証されています。そうしないと、システムが必要と判断するまでonDestroy()が呼び出されない場合があります。代わりに、「閉じる」ロジックをonPause()またはonStop()に配置することを検討してください。