отправка данных из активности в Intentservice

мне нужно отправить данные из активности в IntentService

(от класса, расширяющего активность, к классу, расширяющему IntentService)

мне удалось отправить образец службы с помощью BroadcastReciver, но я хочу расширить класс IntentService, а не службу

кто-то знает, как я могу это сделать?

из

открытый класс MainActivity расширяет Activity {...}

to

открытый класс MyIntentService расширяет IntentService {...}


person ofir_aghai    schedule 18.08.2013    source источник


Ответы (1)


Поместите данные в дополнительный файл Intent, который вы используете с вызовом startService() для запуска вашего IntentService. Затем IntentService может прочитать это дополнение в onHandleIntent().

person CommonsWare    schedule 18.08.2013
comment
так что мне вообще не нужно создавать BroadReciver в IntentService? - person ofir_aghai; 18.08.2013
comment
@ofir_aghai: Нет. Более того, наличие BroadcastReceiver в IntentService было бы значительным запахом кода, ИМХО. Обратите внимание, что тот же самый метод работает для обычного Service, хотя вы получите дополнительные элементы в onStartCommand() вместо onHandleIntent(). - person CommonsWare; 18.08.2013
comment
теперь, если вы можете, я признателен, если вы можете объяснить мне последнюю часть с onStartCommand() - person ofir_aghai; 18.08.2013
comment
@CommonsWare Могу ли я отправить данные в IntentService, если он уже запущен? - person Dhaval Patel; 18.01.2016
comment
@DhavalPatel: За исключением, возможно, сигнала отмены, я не могу придумать случая, когда это имеет смысл для IntentService. С точки зрения реализации, это выходит за рамки комментария Stack Overflow. Вы можете опубликовать отдельный вопрос о переполнении стека с изложением вашего варианта использования. - person CommonsWare; 18.01.2016