さまざまなアクティビティを使用して作業を開始し、結果を開始する際には、インテントを使用する以外に選択肢はありません。今の意図は文脈を必要とし、それは私にとって意味をなさない。私はコンテキストがアプリケーションリソースへのアクセスを許可していることを知っていますが、インテントにコンテキストが必要なのはなぜですか?
理由は単純なメッセンジャーだけのアプリケーションリソースについて知る必要はありますか?
また、私は一部の人々がgetApplicationContext()
でインテントを作成する理由を理解していませんが、これは他のアクティビティコンテキストでこれを使用していますか?
最後に、startActivityResult()
を呼び出すアクティビティが、コンテキスト "this"を渡すのではなく、アプリケーションコンテキストの代わりにonActivityResult()
メソッドでコールバックを受け取る方法についてはわかりません。コールバックを受け取るために、「this」を使用するか、startActivityResult()
という現在のアクティビティコンテキストを渡す必要があると私は考えました。それはちょうど真っ直ぐなJava権利ですか?あなたがクラスを渡すと、他のアクティビティクラスはあなたのクラスへの参照を持ち、クラス内のメソッド(onActivityForResult(
)を呼び出すことができます)。しかし、これはそうではありませんので、私は何が欠けていますか?
こんにちは、あなたの答えは非常に明確で簡潔です。しかし、私はちょっとした説明をしたいだけです。したがって、私がアクティビティを開始するたびに、startActivity()を呼び出すアクティビティはスタックに正しく登録されますか?では、アンドロイドはそのアクティビティを参照して、そのアクティビティを特に渡さないとスタックに登録する方法を知っています。 – Wowzer
システムは、どのアクティビティがスタック(アクティビティ)の最上部にあるかを知っています。そして、新しいものを始めると、それを識別するためにコンポーネント名が使用されます。暗黙のインテント(明示的なターゲット名の代わりにアクションを持つインテント)を使用しても、最終的に特定のコンポーネント名に解決されます。 –