こんにちは、みんな!
Activity
目に見えるレイアウトを表示しながら、かなり多くのメモリを割り当てるがあります。Activity
UIはこのメモリに大きく依存しますが、ユーザーが(通常は別のユーザーActivity
をフォーカスに合わせて)離れた後も、これらの割り当てを保持する必要はありません。
はActivity
メモリの割り当てを開始しonResume()
、すべて問題ありません。しかし、私を少し混乱させるのは割り当て解除です。今のところonPause()
、対応するUI要素も破棄するすべてのメモリを解放します。Activity
実行中はまだ表示されているためonPause()
、ユーザーは実際のUI要素が破棄されるのを確認できます。これは醜く、私が望むものではありません。
だから私の質問:
onStop()
(ドキュメントによると、が呼び出されActivity
たときに表示されない)でメモリを解放(UIを破棄)しても安全ですか?onStop()
onStop()
信頼できますか?onStop()
が呼び出されるたびに呼び出されることが保証されていますonPause()
か?
編集:
私は私を混乱させるものをもう少し明確に説明しなければならないと感じています。developer.android.comによると:
...強制終了可能としてマークされたメソッドの場合、そのメソッドが戻った後、アクティビティをホストしているプロセスは、コードの別の行が実行されることなく、いつでもシステムによって強制終了される可能性があります。
onStop()
メソッドは「強制終了可能」としてマークされています。
上記は(特に "
after that method returns
"の部分)のスコープ全体onStop()
が実行されることが保証されていることを意味しますが、それが返されると、ランタイム(たとえば、で開始された生成されたスレッドonStop()
)は保証されませんか?それとも
onStop()
、スコープの終わりに達する前に(killed at any time
パートの時点で)中断される可能性があることを意味しますか?それとも、私が-私の神の愚かさの中で-見ない何か他のものを意味するのでしょうか。