あなたが尋ねたことのほとんどはドキュメンテーションによってかなりよく説明されています、しかし私はいくつかのことを明確にすることができると思います。
一時停止状態と停止状態の違いを知りたいのですが。
可視性。Dialog
一時停止されたアクティビティは、テーマが適用されたアクティビティなどの別のアクティビティによって部分的にしか隠されていない可能性があるため、2つの状態は異なります。そのためには、視覚的な状態を維持するために必要なリソースをすべて保持する必要があります。停止されたアクティビティは、それらのリソースを放棄する可能性があり、リソースが不足している場合に、アクティビティが破棄されるか保存されるかによって違いが生じる可能性があります。
私は...システムは単に停止したアクティビティのリソースをリリースすることを好むと思います。しかし、それはどのように行われますか?
それはしなければなりません。停止されたアクティビティは完全に見えないため、ユーザーに表示されるものにまだ貢献しているアクティビティよりも、殺害の候補として適しています。一時停止しているが部分的に表示されているアクティビティが再開されたアクティビティからAndroidがヤンクするのを見たことがありませんが、適切な状況で発生する可能性があると思います。システムは、各アクティビティの状態を認識します。これは、アクティビティをそこに向けているためです。
システムがfinish()を呼び出してアクティビティを「親切に尋ねる」のはいつですか、そうでないのはいつですか。また、onDestroy()はいつ呼び出されますか?
システムは可能な場合は整然とした破棄を行いますが、APIは、アクティビティがとを確認することを保証するだけonPause()
ですonSaveInstanceState()
。
ETA:アクティビティがスタックから削除される正確な理由はソースにあります。決定を異なる方法で行うAndroidの将来のバージョンが存在する可能性があるため、これらの理由が普遍的な真実であることに依存するべきではありません。