我目前正在从Service类扩展到我的自定义服务实现。作为Android-O迁移的一部分,我想使用JobIntentService.。
当前,我所有的逻辑都在服务的onStartCommand方法中。
但是,按照JobIntentService,我应该使用onHandleWork方法作为逻辑部分。
JobIntentService的正式文档表示,onStartCommand进程在作为预O服务运行时启动命令,并将它们排队等待稍后在onHandleWork中发送(意图)。
所以,我的问题是,我是否需要同时使用onStartCommand和onHandleWork方法&是否需要在这两个方法中编写相同的逻辑?
或
简单地说,onHandleWork会起作用吗?
请澄清。
发布于 2018-03-08 14:04:45
当前,我所有的逻辑都在服务的onStartCommand方法中。
现在还不清楚你为什么会有这样的服务。您的服务需要发送一个后台线程,这意味着创建其他类(例如,Thread、Runnable的子类)。
是否需要同时保留onStartCommand和onHandleWork方法&是否需要在这两个方法中编写相同的逻辑?
如果您使用的是JobIntentService,则将所有内容都放在onHandleWork()中。这是onHandleIntent()在IntentService中的一个直接模拟--它将在后台线程上调用,如果在方法返回时没有更多的工作要做,服务就会消失。
发布于 2018-05-08 09:00:31
您需要使用enqueueWork(@NonNull上下文上下文、@NonNull类cls、int jobId、@NonNull意图工作)
从JobIntentService开始作业
请参阅https://developer.android.com/reference/android/support/v4/app/JobIntentService
https://stackoverflow.com/questions/49173775
复制相似问题