Как предотвратить несколько экземпляров действия, когда оно запускается с разными намерениями - PullRequest
114 голосов
/ 03 декабря 2010

Я столкнулся с ошибкой в ​​моем приложении, когда оно запускалось с помощью кнопки "Открыть" на Android Market. Кажется, что запуск его с рынка использует другое намерение, чем запуск из меню приложений телефона. Это приводит к тому, что запускается несколько копий одного и того же действия, которые конфликтуют друг с другом.

Например, , если мое приложение состоит из действий A-B-C, то вышеупомянутая проблема может привести к стеку A-B-C-A.

Я пытался использовать android:launchMode="singleTask" во всех действиях, чтобы исправить эту проблему, но у него был нежелательный побочный эффект очистки стека активности от root при каждом обращении к HOME.

Пример: A-B-C -> HOME -> A, когда мне нужно A-B-C -> HOME -> A-B-C

Есть ли хороший способ предотвратить запуск нескольких действий одного типа без сброса корневого действия при использовании HOME?

Ответы [ 11 ]

0 голосов
/ 03 декабря 2010

попробуйте использовать SingleInstance режим запуска с привязкой, установленной на allowtaskreparenting Это всегда создаст действие в новой задаче, но также разрешит ее переопределение.Проверьте dis: Атрибут сродства

...