如果活动的启动模式为singleInstance,则onActivityResult不会触发

我有一个活动,这基本上是我的主要活动,其启动模式是单个实例。 但是由于singleInstance, onActivityResult()callback不会触发。 如果我将清单文件中的启动模式更改为任何其他模式,则工作正常。

你能解释为什么这个callback不起作用吗?

Solutions Collecting From Web of "如果活动的启动模式为singleInstance,则onActivityResult不会触发"

我相信问题是,singleInstance不会让被调用者的活动与调用者存在于同一个任务中,因此它不能将该值返回给调用者。

考虑使用singleTask来代替:

singleTask

系统在新任务的根目录下创build活动,并将意图发送给它。 但是,如果活动的实例已经存在,则系统通过调用onNewIntent()方法将意图路由到现有实例,而不是创build新实例。

singleInstance

与“singleTask”相同,只是系统不会将任何其他活动发送到持有实例的任务中。 该活动始终是其任务的唯一成员。

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

如果一个活动是singleInstance ,它将是唯一的任务,所以它始终是任务的顶部。 所以当你调用startActivityForResult它会立即触发callback方法。

“ 单一实例 ”活动不允许其他活动成为其任务的一部分。 这是唯一的任务。 如果它开始另一个活动,则该活动被分配给不同的任务。 该活动始终是其任务的唯一成员。
我认为onActivityResult不会与singleInstance工作