コースのために、私は見る!私は、貴重な情報と、高価な誤情報が混在しているのを見ています。いいえ、オンラインドキュメントは、プロセスがどのような状況で死んでいるかを正確に特定するものではありません。これは予告なしに変更される可能性があるため、これは意図的なものです。確かに、onDestroy()が呼び出される最も一般的な理由は、システムのメモリが不足していることです。新しい電話ではあまりメモリがないため、あまり一般的ではありません。しかしそれがそれが呼び出される唯一の理由であるという保証はない。
しかし、Androidと開発者の間の契約は、必要なときに必要なライフサイクルコールバックを実装してルールを遵守すると、機能し、あなたはどんな状況下で正確に知る必要がないということですonStop()、onSaveInstanceState()およびonDestroy()が呼び出されます。
Googleとは異なり、私は契約の文言がポイントでやや曖昧であることを認めます。これは、他の理由が少ない中で、「フォアグラウンド」などの業界標準の意味を持つ用語を使用するためですが、若干変更された意味で使用しているためです。そして、変更は決して説明されないか、あいまいな場所でのみ説明される。また、ダイアグラムが「アクティビティが状態間で取る可能性のあるパス」を示すことを目的としていても、onDestroy()を何度も呼び出すことができず、ResumedからStoppedへの遷移を回避することもできません。しかし、そのテキストはその可能性をはっきりと説明している。
これは、残念ながら、「Application Fundamentals」のApplication Lifecycleセクションを読むだけでは不十分である理由です。その代わりに、アクティビティのコールバックの各コールバックのJavadocと、プロセスの「アプリケーションの基礎」のセクションも参照する必要があります。
その後、各コールバックにLog.dステートメントを配置し、ライフサイクルを通じてアプリケーションを循環させながらlogcat出力を監視することは非常に役に立ちます。しかし、それでも、上記のオンラインドキュメントのいずれかでそれを正当化することができない限り、logcatで表示されるライフサイクルイベントに依存しないでください。
[developer.android.com](http://developer.android.com/guide/topics/fundamentals.html#actlife)の 'Application Fundamentals'セクションのアクティビティライフサイクルの詳細な説明があります。あなたの質問のほとんどに答える必要があります。 –
いいえ、上記の質問には答えません。あなたがそれを疑うなら一見をしてください。 – cody
@cody:Josefがリンクしているドキュメンテーションで実際に時間をかけて*読んだら、Androidアプリケーションのライフサイクルがどのように機能するかを理解する必要があります。まだ不明なことがいくつかある場合は、これについて*具体的な質問をすることをお勧めします。 – Nailuj