【问题标题】:How to send data from an activity to servicce如何将数据从活动发送到服务
【发布时间】:2012-03-31 14:07:21
【问题描述】:

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

这是我的活动类中的代码

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() {



}

【问题讨论】:

    标签: android service android-intent


    【解决方案1】:

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

    【讨论】:

      【解决方案2】:

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

      另一种选择是让您的 Activity 发送一个包含数据的广播 Intent,您的服务可以设置一个 BroadcastReceiver 来监听。

      您想使用该服务做什么?也许有一个更简单或更轻量级的解决方案来解决您的问题。

      【讨论】:

      • "您不会将数据从 Activity 发送到带有 Intents 的服务。" - 是的你是。就是命令模式,使用startService()Intents的形式发送命令。引用the documenation“启动服务的多个请求会导致对服务的 onStartCommand() 的多个相应调用。但是,只需要一个停止服务的请求(使用 stopSelf() 或 stopService())来停止它。”这适用于IntentServices
      • @David Wassler 我正在使用服务来检查时间值并在我的开始时间和结束时间之间打开静音模式
      • 好的,那么即使您的 Activity 没有运行,您也需要运行该服务。 @Akhil 的解决方案应该有效。 This question/answer 展示了如何在 startService() 中使用的 Intent 中传递值,以及如何在服务中的 onStartCommand() 中检索它们。
      • @CommonsWare 是的,我的立场是正确的。我的意思是你不要使用startActivity()。但很明显,我并没有完全正确地理解这一点。我可以编辑答案以指出这一点,但我认为目前还没有实际意义。
      猜你喜欢
      • 2013-07-28
      • 1970-01-01
      • 1970-01-01
      • 2012-12-30
      • 1970-01-01
      • 1970-01-01
      • 2021-06-26
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多