如何将数据从活动发送到服务

时间:2012-03-31 14:07:21

标签: android service android-intent

我正试图通过意图将活动数据发送到服务。

这是我的活动类

中的代码
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 个答案:

答案 0 :(得分:4)

SampleService是一个服务,您应该使用startService(i);而不是startActivity(i);然后可以在服务中检索附加到意图的数据。

答案 1 :(得分:2)

您不会将数据从活动发送到具有意图的服务。 Activity需要绑定到服务,然后调用绑定器上的方法。请参阅http://developer.android.com/guide/topics/fundamentals/services.htmlhttp://developer.android.com/reference/android/app/Service.html

另一个选择是让你的活动发送一个广播意图与数据,你的服务可以设置一个BroadcastReceiver来听取它。

你想用什么服务?也许你的问题有一个更轻松或更轻量级的解决方案。