Я столкнулся с проблемой, надеюсь, что вы можете дать некоторое предложение об этом.
Вот проблема:
В моем приложении есть активность A
, которая является приложением MAIN
Activity, и может быть запущена из другого приложения (например, SMS). Рассмотрим теперь, что в моей задаче приложения есть действия A-B-C-D
, как я уже говорил, пользователь может запустить A
Activity from SMS, когда A
запущен из SMS, я хочу, чтобы B C D
все было закончено, а экземпляр of A
Активность в задаче будет перенесена на передний план.
Я попытался установить A
activity launchMode
на singleTask
, это будет делать трюк, но есть и другая проблема: например, я получил A-B-C-D
Действия в моей прикладной задаче, нажмите HOME
ключ к главному экрану и перезапустить приложение из запуска, затем A
Активность отображается вместо D
Активность. Это, как приложение, было запущено с самого начала, это не то, что я хочу.
Есть ли способ, которым я могу это сделать? Любое предложение будет высоко оценено. Спасибо заранее!
Не пробовал, но вы можете попробовать следующее:
launchMode
значение singleTask
и alwaysRetainTaskState
в значение true
, оно работало так же, как я описал в своем вопросе. Кажется, что alwaysRetainTaskState
будет работать только тогда, когда пользователь давно не посещал приложение. 2, извините за то, что я не описал свою проблему достаточно четко, A
Activity не запускается в BroadcastReceiver
, а из системы, так как я добавляю <intent-filter>
в <activity>
который содержит действие ACTION_VIEW
и <data host="my.host.com">
.
ABCD
, иA
запускается по SMS, не устанавливаяlaunchMode
вsingleTask
, что происходит?A
Activity. Пользователь увидитA
Activity, при нажатии клавишиBACK
отобразится приложение SMS. Итак, я думаю, что в моем приложении есть две задачи:ABCD
иA