Проблема с запуском Activity из другого приложения

1

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

Вот проблема:

В моем приложении есть активность 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 Активность. Это, как приложение, было запущено с самого начала, это не то, что я хочу.

Есть ли способ, которым я могу это сделать? Любое предложение будет высоко оценено. Спасибо заранее!

  • 0
    В случае, если у вас уже есть ABCD , и A запускается по SMS, не устанавливая launchMode в singleTask , что происходит?
  • 0
    @Rajath Будет создан и запущен новый экземпляр A Activity. Пользователь увидит A Activity, при нажатии клавиши BACK отобразится приложение SMS. Итак, я думаю, что в моем приложении есть две задачи: ABCD и A
Теги:
launchmode

1 ответ

1

Не пробовал, но вы можете попробовать следующее:

  • Задайте для атрибута активности alwaysRetainTaskState значение true. Это должно позаботиться о сохранении всех действий в стеке.
  • Если вы хотите показать активность корня (в вашем случае: при запуске из SMS - я предполагаю, что вы вызываете активность из вашего SMS-получателя с использованием действия запуска), в намерении, которое вы передаете startActivity, установите FLAG_ACTIVITY_CLEAR_TOP. Это должно исчезнуть, поскольку вы явно упоминаете это в намерении.
  • 0
    Спасибо за предложение, я попробовал, но он не может работать так, как я хочу, вот результаты: 1, я попытался установить для launchMode значение singleTask и alwaysRetainTaskState в значение true , оно работало так же, как я описал в своем вопросе. Кажется, что alwaysRetainTaskState будет работать только тогда, когда пользователь давно не посещал приложение. 2, извините за то, что я не описал свою проблему достаточно четко, A Activity не запускается в BroadcastReceiver , а из системы, так как я добавляю <intent-filter> в <activity> который содержит действие ACTION_VIEW и <data host="my.host.com"> .

Ещё вопросы

Сообщество Overcoder
Наверх
Меню