基本的に私の主なアクティビティであるアクティビティがあり、その起動モードは単一インスタンスです。しかし、singleInstance のため、onActivityResult()
コールバックは発生しません。また、マニフェスト ファイルの起動モードを他のモードに変更すると、正常に動作します。
このコールバックが機能しない理由を説明できますか?
基本的に私の主なアクティビティであるアクティビティがあり、その起動モードは単一インスタンスです。しかし、singleInstance のため、onActivityResult()
コールバックは発生しません。また、マニフェスト ファイルの起動モードを他のモードに変更すると、正常に動作します。
このコールバックが機能しない理由を説明できますか?
問題は、 singleInstance が呼び出し先アクティビティを呼び出し元と同じタスクに存在させないため、呼び出し元に値を返すことができないことだと思います。
代わりに singleTask の使用を検討してください。
シングルタスク
システムは、新しいタスクのルートにアクティビティを作成し、インテントをそこにルーティングします。ただし、アクティビティのインスタンスがすでに存在する場合、システムは、新しいインスタンスを作成するのではなく、その onNewIntent() メソッドを呼び出すことによって、インテントを既存のインスタンスにルーティングします。
単一インスタンス
「singleTask」と同じですが、システムはインスタンスを保持しているタスクに他のアクティビティを起動しません。アクティビティは、常にそのタスクの唯一のメンバーです。
http://developer.android.com/guide/topics/manifest/activity-element.html
「singleInstance」アクティビティでは、他のアクティビティをそのタスクの一部にすることはできません。タスク内の唯一のアクティビティです。別のアクティビティを開始すると、そのアクティビティは別のタスクに割り当てられます。アクティビティは、常にそのタスクの唯一のメンバーです。
私onActivityResult
は動作しないと思いますsingleInstance