0

我有一项服务,每 1-3 秒左右接收一次位置更新。该服务是使用挂起的意图从主要活动启动的:

    mFusedLocationClientFast.requestLocationUpdates(mLocationRequest, getPendingIntent());

哪里getPendingIntent()是定义我IntentService要处理的动作的方法handleIntent()

但是,我注意到的一件奇怪的事情是,每次IntentService处理 中的位置更新时,总是在调用同一服务handleIntent()之前立即调用。onStartCommand()

有谁知道为什么onStartCommand()每次服务处理意图时都需要调用?谢谢

4

1 回答 1

1

IntentService 简单来说就是onHandleIntent在工作线程上运行的服务。服务接收意图的机制是onStartCommand

在 IntentService 中,onStartCommand方法将意图转发给onHandleIntent方法。

代码在这里

对我来说,令人费解的是,设计者IntentService并没有实现onStartCommandonStart final

于 2019-12-24T16:10:57.260 回答