Перезапустите существующую задачу в последних приложениях из службы.Android

Форум для тех, кто программирует под Android
Ответить
Anonymous
 Перезапустите существующую задачу в последних приложениях из службы.

Сообщение Anonymous »

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

Код: Выделить всё

context.startActivity(new Intent().setPackage(packageName).setAction(Intent.ACTION_MAIN).addCategory(Intent.CATEGORY_LAUNCHER).setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
Intent.FLAG_ACTIVITY_NEW_TASK требуется при запуске действия вне контекста действия (в данном случае службы специальных возможностей). Несмотря на то, что это будет означать, что будет создана НОВАЯ задача, она успешно перезапускает задачу, которая была видна в последних, если она уже существовала. Если нет, создается новое.
Однако вышеописанное НЕ работает, когда рассматриваемое приложение изначально было запущено из другого приложения. Например, если com.android.settings изначально был запущен из системного уведомления или из другого приложения, приведенный выше код запустит новый экземпляр com.android.settings вместо вызова того, который уже отображался в последних приложениях. Я пробовал добавлять разные флаги, но безрезультатно.
Есть ли у кого-нибудь решение этой проблемы или хотя бы объяснить, почему это происходит?

Подробнее здесь: https://stackoverflow.com/questions/791 ... -a-service
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Android»