以不同的意图多次启动服务

时间:2016-02-01 12:58:05

标签: android service

假设我们有两个按钮:

第一个按钮:

Intent i = new Intent(this,MyService.class);
i.putExtra("url","https://api.crowdscores.com/api/v1/matches/53102")
startService(i);

第二个按钮:

Intent i = new Intent(this,MyService.class);
    i.putExtra("url","https://api.crowdscores.com/api/v1/matches/53113");
    startService(i);

在MyService上我有一个计时器,每30秒检索一次数据约2小时

当我点击按钮无法启动另一个但第一个服务已完成(已销毁)

我如何并行运行这两个服务?

1 个答案:

答案 0 :(得分:2)

您不要在Parallel中运行它们。 Android API会为您处理此问题。如果第一次调用startService()时服务未运行,则会调用其onCreate()方法。但是,如果它正在运行,则会调用服务的onStartCommand()

  

启动服务的多个请求导致对服务的onStartCommand()的多个相应调用。

由您来处理为每个运行该服务的请求创建线程的逻辑。看一下如何完成任务的概述:

http://developer.android.com/intl/es/guide/components/services.html#ExtendingService

这将引导您正确创建服务,允许您同时发送多个请求。