Урок 185. Notifications. Режимы открытия Activity

Обсуждение уроков
Ответить
Аватара пользователя
damager82
Администратор
Сообщения: 1383
Зарегистрирован: 07 янв 2012, 11:32
Контактная информация:

Урок 185. Notifications. Режимы открытия Activity

Сообщение damager82 » 16 ноя 2017, 01:03

В прошлом уроке мы уже рассмотрели, как отобразить Activity по нажатию на уведомление. Но там был простой случай. В этом уроке рассмотрим более интересные случаи.


Click here to read this article!
Последний раз редактировалось damager82 08 май 2018, 15:27, всего редактировалось 12 раз.
Добро пожаловать на форум сайта StartAndroid
ИзображениеИзображение

Spider
Сообщения: 5
Зарегистрирован: 14 сен 2017, 16:51

Re: Урок 185. Notifications. Режимы открытия Activity

Сообщение Spider » 20 ноя 2017, 17:19

Приветствую.
А что такое "EXTRA_ITEM_ID", itemId в скобках? А то у меня он красным горит и лапочка говорит, что с ним надо что-то сделать, создать class или constant field... ну и т.д.

danek130995
Сообщения: 42
Зарегистрирован: 25 янв 2015, 18:57

Re: Урок 185. Notifications. Режимы открытия Activity

Сообщение danek130995 » 05 апр 2018, 13:17

Я так понимаю, в примере для WhatsNewActivity не обязательно указывать в манифесте android:launchMode="singleTask", так как мы все равно его укажем через флаг FLAG_ACTIVITY_NEW_TASK. Кстати говоря, убрал даже в манифесте singleTask, и убрал вообще все флаги. Поведение не изменилось. Получается, основное влияние здесь оказывает affinity
Еще, насколько мне известно, можно использовать атрибут в манифесте android:documentLaunchMode="always" чтобы активити запускалось в новом окне

foxfail
Сообщения: 2
Зарегистрирован: 19 май 2018, 20:56

Re: Урок 185. Notifications. Режимы открытия Activity

Сообщение foxfail » 20 май 2018, 01:06

Есть список 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 для родительских активностей, нет?

Ответить