Вызов метода getIntent в службе - программирование

Вызов метода getIntent в службе

Мне нужно передать параметр из MyActivity.class в TestService.class. MyActivity - это класс Activity, а Test Service - это служба, которую я сделал для отправки сообщений. Мне нужно передать параметр из класса Activity в класс службы. но когда я вызываю Intent i = getIntent(); в классе службы, я получаю сообщение об ошибке getIntent() - undefined. Пожалуйста, дайте мне предложение, как я могу взять параметр из моего класса активности в службе или есть альтернативный метод для использования getIntent(). Спасибо в Advance

4b9b3361

Ответ 1

Начните свой сервис следующим образом:

 Intent ir=new Intent(this, Service.class); 
 ir.putExtra("data", data); 
 this.startService(ir); 

Вы добавляете свои данные в качестве дополнительного дополнения.

Затем для извлечения данных из службы;

data=(String) intent.getExtras().get("data"); 

Таким образом, вы можете получить доступ к своему параметру из параметра onHandleIntent или onStartCommand Intent. (в зависимости от того, какой тип службы вы используете) Например:

Сервис

protected void onStartCommand (Intent intent, int flags, int startId) {
    data=(String) intent.getExtras().get("data"); 
}

public int onStartCommand (Intent intent, int flags, int startId)

IntentService

protected void onHandleIntent(Intent intent) {
    data=(String) intent.getExtras().get("data"); 
}

защищенная абстрактная пустота onHandleIntent (намерение намерения)

Ответ 2

При запуске службы с намерением (с данными) это намерение получено в методе
onStart(Intent intent, int startId) или

onStartCommand (Intent intent, int flags, int startId)
{
this **intent** is your intent with data
}

вашего сервиса. Получите ваши данные из этого метода с намерением в качестве параметра