Как отправить данные из активности в сервис - PullRequest
1 голос
/ 31 марта 2012

Я пытаюсь отправить данные из действия в службу через намерения.

Это код из моего класса активности

Intent i= new Intent(this,SampService.class);

    i.putExtra("startTimeHour", timePicker1.getCurrentHour());
    i.putExtra("endTimeHour", timePicker2.getCurrentHour());
    i.putExtra("startTimeMinute",timePicker1.getCurrentMinute());
    i.putExtra("endTimeMinute", timePicker2.getCurrentMinute());
    startActivity(i);

Это код из моего класса обслуживания

public class SampService extends Service implements Runnable {

@Override
public IBinder onBind(Intent intent) {
    // TODO Auto-generated method stub
    return null;
}
public void onCreate()
{
    Toast.makeText(getApplicationContext(), "Service Created", Toast.LENGTH_LONG).show();
    String startTimeHour,startTimeMinute,endTimeHour,endTimeMinute;



}
public void onStart()
{
    Thread t=new Thread(this);
    t.start();
}
public void run() {



}

Ответы [ 2 ]

4 голосов
/ 31 марта 2012

SampleService - это Сервис, вы должны использовать startService(i); вместо startActivity(i);. Данные, прикрепленные к намерению, можно затем извлечь в Сервисе.

2 голосов
/ 31 марта 2012

Вы не отправляете данные из Действия в Службу с Intents.Действие должно быть привязано к сервису, а затем вы вызываете методы для связующего.См. http://developer.android.com/guide/topics/fundamentals/services.html и http://developer.android.com/reference/android/app/Service.html

Другой вариант - ваша активность отправляет намерение широковещательной передачи с данными, и ваша служба может настроить BroadcastReceiver для прослушивания этого.* Для чего вы пытаетесь использовать сервис?Возможно, есть более легкое или более легкое решение вашей проблемы.

...