(Android)如何运行多个服务实例

时间:2017-02-11 00:54:35

标签: android

任何人都知道如何让同一个服务类的多个实例单独工作,我正在一个出租车计量器应用程序,我有一个"计数器"服务,它将为我计算距离,并为每个客户添加数据库的位置,在我的主要活动中,我做了三个相同的服务实例,并单独启动每个人,但它似乎没有按预期工作(只有我做了一个吐司在每个服务开始行动,但它似乎只出现在一个客户端)。 我知道我已经阅读了几个步骤,它不可能同时使多个服务实例工作,但这是我可以做的唯一方法来制作一个支持多个客户端的出租车计量器。

1 个答案:

答案 0 :(得分:0)

正如所指出的,我们不能有多个服务实例。服务只能有一个实例。每次后续调用startService,都会再次调用onStartCommand方法。

但是,假设onStartCommand实例化一个Timer对象,每30秒重复一次任务。每次后续调用startService,都会创建一个新的对象Timer实例......!

现在使用以下用例:

  1. 计时器设置为记录" Hello World"每30秒后

  2. 第一次启动命令发出时间为16:00:00

  3. 接下来的2分钟,您应该看到5" Hello World"印在

  4. -16:00:00

    -16:00:30

    -16:01:00

    -16:01:30

    -16:02:00

    1. 现在第二个startService命令是在16:02:10发出的,接下来的2分钟,你应该看到" Hello World"印刷如下:
    2. -16:02:10(第二次电话会议)

      -16:02:30(第一次电话会议)

      -16:02:40(第二次电话会议)

      -16:03:00(第一次电话会议)

      -16:03:10(...)

      -16:03:30

      -16:03:40

      -16:04:00

      因此在第二次调用之后,存在两个Timer类的实例。但只有一个Service实例。