Подтвердить что ты не робот

OnActivityResult не срабатывает, если режим запуска активности singleInstance

У меня есть Activity, который в основном является моей основной деятельностью, а его режим запуска - единый экземпляр. Но из-за singleInstance обратный вызов onActivityResult() не срабатывает. И если я изменю режим запуска в моем файле манифеста в любой другой режим, он отлично работает.

Можете ли вы объяснить, почему этот обратный вызов не работает?

4b9b3361

Ответ 1

Я считаю, что проблема в том, что singleInstance не позволяет активности вызываемого абонента существовать в той же задаче, что и вызывающий, поэтому он не может вернуть значение вызывающему.

Рассмотрим вместо этого использование singleTask:

singleTask

Система создает активность на корень новой задачи и намерение к нему. Однако, если экземпляр деятельности уже существует, система направляет намерение экземпляр путем вызова его onNewIntent(), а не создавая новый.

SingleInstance

То же, что и "singleTask", за исключением того, что система не запускает никаких других деятельности в пример. Деятельность всегда единственный и единственный член своей задачи.

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

Ответ 2

Если активность singleInstance, она будет единственной в задаче, поэтому она всегда будет вершиной задачи. Поэтому, когда вы вызываете startActivityForResult, он немедленно запускает метод обратного вызова.

Ответ 3

A " singleInstance", никакие другие действия не могут быть частью его задачи. Это единственное занятие в задаче. Если он запускает другое действие, эта деятельность назначается другой задаче. Активность всегда является единственным и единственным членом своей задачи.
Я думаю, что onActivityResult не будет работать с singleInstance