Для точного ответа на этот вопрос «Как отправить данные через намерение из Действия в Сервис», необходимо ли переопределить метод onStartCommand()
, в который вы получаете объект намерения:
Когда вы создаете Service
, вы должны переопределить метод onStartCommand()
, поэтому, если вы внимательно посмотрите на подпись ниже, вы получите объект intent
, который ему передан:
public int onStartCommand(Intent intent, int flags, int startId)
Таким образом, из действия вы создадите объект намерения для запуска службы, а затем поместите свои данные в объект намерения, например, хотите передать UserID
из Activity
в Service
:
Intent serviceIntent = new Intent(YourService.class.getName())
serviceIntent.putExtra("UserID", "123456");
context.startService(serviceIntent);
Когда служба запущена, будет вызван ее метод onStartCommand()
, поэтому в этом методе вы можете извлечь значение (UserID) из объекта намерения, например
public int onStartCommand (Intent intent, int flags, int startId) {
String userID = intent.getStringExtra("UserID");
return START_STICKY;
}
Примечание: приведенный выше ответ указывает на получениеНамерение с getIntent()
методом, который не является правильным в контексте услуги