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