Урок 96. Service. Обратная связь с помощью BroadcastReceiver

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

Урок 96. Service. Обратная связь с помощью BroadcastReceiver

Сообщение damager82 » 15 июл 2012, 23:00

В этом уроке:
- получаем из сервиса результат с помощью BroadcastReceiver


Click here to read this article!
Последний раз редактировалось damager82 25 фев 2019, 17:00, всего редактировалось 7 раз.
Добро пожаловать на форум сайта StartAndroid
ИзображениеИзображение

kievkao
Сообщения: 1
Зарегистрирован: 18 фев 2013, 16:22

Re: Урок 96. Service. Обратная связь с помощью BroadcastRece

Сообщение kievkao » 18 фев 2013, 16:24

Интересно, а к каким последствиям может привести решение не отключать BroadcastReceiver, например, при завершении работы приложения?

Stylish2011
Сообщения: 8
Зарегистрирован: 21 июн 2012, 16:25

Re: Урок 96. Service. Обратная связь с помощью BroadcastRece

Сообщение Stylish2011 » 02 апр 2014, 10:59

А каким способом можно остановить одну из задач, чтобы при этом остальные продолжали работать?

Gabber_WB
Сообщения: 1
Зарегистрирован: 21 мар 2014, 14:22

Re: Урок 96. Service. Обратная связь с помощью BroadcastRece

Сообщение Gabber_WB » 04 апр 2014, 15:36

Здраствуйте...
Почитал, вот Я про сервисы... всё хорошо, весьма понятно...
Есть одно упущение... нет описания "полюсоминосов" того или иного подхода...
то есть например чем отличается 95-й и 96-й уроки, ну кроме "метода разная". :)

А сам как только не извращался... мне надо было в сервисе управлять активностью(если есть), а в активности сервисом...
Вот даже о передаче в сервис ссылки на активность, а в активность ссылки на сервис додумался. Просто печёнкой чую, что такая метода почему-то не верна, а почему х.з.

так что просьба к автору описывать "чем грозит та или иная метода"
т.е. например, думаю, что броадкаст ресивер хорош
- универсальностью
- простатой реализации
плох(как мне кажется):
- быстродействие.

выше написанное - это Я так предполагаю, а как на самом деле - не знаю.

ну и возможно примеры(ну просто на словах, не обязательны сотни строк кода) где та или иная метода наиболее выгодно используется.

Razor
Сообщения: 10
Зарегистрирован: 13 окт 2014, 13:58

Re: Урок 96. Service. Обратная связь с помощью BroadcastRece

Сообщение Razor » 07 ноя 2014, 08:02

Gabber_WB писал(а):Здраствуйте...
Почитал, вот Я про сервисы... всё хорошо, весьма понятно...
Есть одно упущение... нет описания "полюсоминосов" того или иного подхода...
то есть например чем отличается 95-й и 96-й уроки, ну кроме "метода разная". :)
...
ну и возможно примеры(ну просто на словах, не обязательны сотни строк кода) где та или иная метода наиболее выгодно используется.
Тоже интересует информация на эту тему.

Аватара пользователя
Fry
Сообщения: 183
Зарегистрирован: 07 дек 2013, 22:07

Re: Урок 96. Service. Обратная связь с помощью BroadcastRece

Сообщение Fry » 16 янв 2015, 11:08

Есть одно упущение... нет описания "полюсоминосов" того или иного подхода...
то есть например чем отличается 95-й и 96-й уроки, ну кроме "метода разная

Насколько я понимаю, ключевое отличие а между PendingIntent и BroadcastReceiver (уроки 95 и 96 соответственно) в том, что для PendingIntent ответ должен приходить строго в то активити, из которого вызывается вызывается сервис. А в случае с BroadcastReceiver стартовать сервис мы можем из одного активити, а результаты ловить как в нем, так и в любом активити, настроенном на получение этого BroadcastReceiver.

Я прав?
Последний раз редактировалось Fry 16 янв 2015, 13:48, всего редактировалось 1 раз.
Arbeit macht Fry

Аватара пользователя
KamiSempai
Сообщения: 1339
Зарегистрирован: 17 фев 2012, 21:23
Откуда: Мордор

Re: Урок 96. Service. Обратная связь с помощью BroadcastRece

Сообщение KamiSempai » 16 янв 2015, 13:14

Все верно. PendingIntent полученный при помощи createPendingResult будет присылать ответы только в ту Activity в которой он был создан.
R.id.team
Хватит таскать макулатуру на тренировку! Используй T Note.

Эркин
Сообщения: 7
Зарегистрирован: 03 май 2015, 10:11

Re: Урок 96. Service. Обратная связь с помощью BroadcastRece

Сообщение Эркин » 16 май 2015, 12:14

Подскажите как передать
intent = new Intent(this, MyserviceBroad.class).putExtra(PARAM_TIME, 7)
.putExtra(PARAM_TASK, TASK1_CODE).putExtra(PARAM_STR, "12345qwert");
строковую переменную и получить также в строковом формате
Я для передачи вроде прописал а в Broad не могу присвоить переменной

Заранее благодарен

K_Vladimir
Сообщения: 36
Зарегистрирован: 28 июн 2015, 03:13

Re: Урок 96. Service. Обратная связь с помощью BroadcastRece

Сообщение K_Vladimir » 05 авг 2015, 12:30

Эркин писал(а):Подскажите как передать
intent = new Intent(this, MyserviceBroad.class).putExtra(PARAM_TIME, 7)
.putExtra(PARAM_TASK, TASK1_CODE).putExtra(PARAM_STR, "12345qwert");
строковую переменную и получить также в строковом формате
Я для передачи вроде прописал а в Broad не могу присвоить переменной

Заранее благодарен
А так что, не получается?
public Intent putExtra (String name, String value)
public String getStringExtra (String name)
http://developer.android.com/intl/ru/re ... l#putExtra(java.lang.String, java.lang.String)
http://developer.android.com/intl/ru/re ... ng.String)

Аватара пользователя
Kirill
Сообщения: 19
Зарегистрирован: 09 сен 2015, 13:53

Re: Урок 96. Service. Обратная связь с помощью BroadcastRece

Сообщение Kirill » 23 сен 2015, 19:31

Fry писал(а):
Есть одно упущение... нет описания "полюсоминосов" того или иного подхода...
то есть например чем отличается 95-й и 96-й уроки, ну кроме "метода разная

Насколько я понимаю, ключевое отличие а между PendingIntent и BroadcastReceiver (уроки 95 и 96 соответственно) в том, что для PendingIntent ответ должен приходить строго в то активити, из которого вызывается вызывается сервис. А в случае с BroadcastReceiver стартовать сервис мы можем из одного активити, а результаты ловить как в нем, так и в любом активити, настроенном на получение этого BroadcastReceiver.

Я прав?
насколько я понимаю основное назначение PendingIntent - это возможность выполнение интента сторонними приложениями "от имени" вашего приложения. То есть, будут использоваться все разрешения и даже тот же юзер в системе. Такой интент может быть выполнен даже когда ваше приложение уже давно закрыто.
Из этого следуют три основных случая использования:
интент выполняется NotificationManager'ом, то есть когда юзер что-то делает с нотификейшеном которое пришло.
интент выполняется App Widget'ом - из Home экрана выполняется интент при взаимодействии с виджетом экрана
интент выполнятся AlarmManager'ом в определенный момент времени.

то есть, использовать PendingIntent для передачи данных из активити в сервис и обратно это неприродно как-то
две ссылки по теме:
http://developer.android.com/intl/ru/gu ... dingIntent
http://codetheory.in/android-pending-intents/

Ответить