В прошлом уроке мы уже рассмотрели, как отобразить Activity по нажатию на уведомление. Но там был простой случай. В этом уроке рассмотрим более интересные случаи.
Click here to read this article!
Урок 185. Notifications. Режимы открытия Activity
Урок 185. Notifications. Режимы открытия Activity
Последний раз редактировалось damager82 08 май 2018, 15:27, всего редактировалось 12 раз.
Re: Урок 185. Notifications. Режимы открытия Activity
Приветствую.
А что такое "EXTRA_ITEM_ID", itemId в скобках? А то у меня он красным горит и лапочка говорит, что с ним надо что-то сделать, создать class или constant field... ну и т.д.
А что такое "EXTRA_ITEM_ID", itemId в скобках? А то у меня он красным горит и лапочка говорит, что с ним надо что-то сделать, создать class или constant field... ну и т.д.
-
- Сообщения: 42
- Зарегистрирован: 25 янв 2015, 18:57
Re: Урок 185. Notifications. Режимы открытия Activity
Я так понимаю, в примере для WhatsNewActivity не обязательно указывать в манифесте android:launchMode="singleTask", так как мы все равно его укажем через флаг FLAG_ACTIVITY_NEW_TASK. Кстати говоря, убрал даже в манифесте singleTask, и убрал вообще все флаги. Поведение не изменилось. Получается, основное влияние здесь оказывает affinity
Еще, насколько мне известно, можно использовать атрибут в манифесте android:documentLaunchMode="always" чтобы активити запускалось в новом окне
Еще, насколько мне известно, можно использовать атрибут в манифесте android:documentLaunchMode="always" чтобы активити запускалось в новом окне
Re: Урок 185. Notifications. Режимы открытия Activity
Есть список List, отображаемый в ListActivity, если нажать на Item из списка открываются детали в отдельной активности (DetailsActivity) подтягивается из sql, потом из DetailsActivity вызывается TimerActivity в которой есть таймер и связан/запускает службу, которая ответственна за уведомление. Уведомление отображает название предмета из списка (точнее из БД) и время.
То есть схематично путь пользователя (и ключа БД) выглядит так: ListActivity -> DetailsActivity -> TimerActivity -> NotificationService
Вопрос: если пользователь закрыл приложение, но NotificationService запущен и по нажатию на уведомление открывается TimerActivity, как мне указать программе что надо вернутся к DetailsActivity и подгрузить детали конкретного предмета из бд? В манифесте указал родителя активности и при нажатии кнопки назад возвращается к DetailsActivity, но из БД детали не подгружаются т.к. активность естественно не знает что подгрузить.
Пока что реализовал через установку android:launchMode="singleTask", обработку onBackPressed и onOptionsItemSelected (для кнопки назад в ActionBar), с вызовом нужной активности и передачей туда в Extras ключа БД по которому надо подгрузить объект. То есть если закрыть приложение и оставить только уведомление путь ключа БД будет Notification -> TimerActivity -> DetailsActivity. Мне кажется что при формировании стека вызовов Activity можно как то реализовать Extras для родительских активностей, нет?
То есть схематично путь пользователя (и ключа БД) выглядит так: ListActivity -> DetailsActivity -> TimerActivity -> NotificationService
Вопрос: если пользователь закрыл приложение, но NotificationService запущен и по нажатию на уведомление открывается TimerActivity, как мне указать программе что надо вернутся к DetailsActivity и подгрузить детали конкретного предмета из бд? В манифесте указал родителя активности и при нажатии кнопки назад возвращается к DetailsActivity, но из БД детали не подгружаются т.к. активность естественно не знает что подгрузить.
Пока что реализовал через установку android:launchMode="singleTask", обработку onBackPressed и onOptionsItemSelected (для кнопки назад в ActionBar), с вызовом нужной активности и передачей туда в Extras ключа БД по которому надо подгрузить объект. То есть если закрыть приложение и оставить только уведомление путь ключа БД будет Notification -> TimerActivity -> DetailsActivity. Мне кажется что при формировании стека вызовов Activity можно как то реализовать Extras для родительских активностей, нет?