Android: извлекать данные о намерениях в сервисе?

#android

#Android

Вопрос:

Привет, я передаю намерение с некоторыми данными для запуска сервиса, но я не могу получить свои строки, поскольку мой OnCreate() метод сервиса вызывается первым, и у меня есть вся работа в нем, но я не могу получить данные намерения в этом методе..

Ответ №1:

Дополнительные функции Intent предназначены для использования с командами ( onStartCommand() ) или, возможно, с запросами на привязку ( onBind() ). Это не Intent связано с простым созданием сервиса.

Перепишите свой сервис, чтобы он выполнял работу, настроенную Intent дополнительными функциями в onStartCommand() или onBind() . Или подумайте, являются ли Intent дополнения правильным подходом к использованию — например, я ожидал бы, что вещи, которые Service необходимы постоянно, будут доступны в базе данных или SharedPreferences .

Комментарии:

1. я использовал метод OnStart и поместил в него весь свой код, а кнопка, вызывающая сервис, зависает до тех пор, пока мой файл не будет загружен на сервер, т. е. пока сервис не завершится.

2. @Harinder: Тогда вы должны использовать где-то фоновый поток, возможно, внутри сервиса. Возможно, стоит подумать о создании IntentService вместо обычного Service .