28

基本的に私の主なアクティビティであるアクティビティがあり、その起動モードは単一インスタンスです。しかし、singleInstance のため、onActivityResult()コールバックは発生しません。また、マニフェスト ファイルの起動モードを他のモードに変更すると、正常に動作します。

このコールバックが機能しない理由を説明できますか?

4

6 に答える 6

50

問題は、 singleInstance が呼び出し先アクティビティを呼び出し元と同じタスクに存在させないため、呼び出し元に値を返すことができないことだと思います。

代わりに singleTask の使用を検討してください。

シングルタスク

システムは、新しいタスクのルートにアクティビティを作成し、インテントをそこにルーティングします。ただし、アクティビティのインスタンスがすでに存在する場合、システムは、新しいインスタンスを作成するのではなく、その onNewIntent() メソッドを呼び出すことによって、インテントを既存のインスタンスにルーティングします。

単一インスタンス

「singleTask」と同じですが、システムはインスタンスを保持しているタスクに他のアクティビティを起動しません。アクティビティは、常にそのタスクの唯一のメンバーです。

http://developer.android.com/guide/topics/manifest/activity-element.html

于 2011-02-25T15:15:56.770 に答える
4

singleInstance」アクティビティでは、他のアクティビティをそのタスクの一部にすることはできません。タスク内の唯一のアクティビティです。別のアクティビティを開始すると、そのアクティビティは別のタスクに割り当てられます。アクティビティは、常にそのタスクの唯一のメンバーです。
onActivityResultは動作しないと思いますsingleInstance

于 2011-02-25T15:06:12.107 に答える