停止IntentService

5
有没有办法在IntentService没有完成工作线程并停止自己的情况下停止它?这是一个简单的问题,但我在文档中找不到答案。是否有一种简单的方法来停止它?谢谢。

stopService(intent); 是怎么样的呢? - james
3个回答

3

在将消息排队之前,会调用onStartCommand函数来转发消息以进行排队。因此,您可以重写onStartCommand函数,就像这样:

@Override
public int onStartCommand(Intent intent, int flags, int startId) {
    if (intent.getAction().equals("Stop"))
        stopSelf();
    onStart(intent, startId);
    return START_NOT_STICKY;
}

干杯


2

是的,但你怎么告诉服务调用 stopSelf 呢?消息会被排队。 - james

1

我目前在开发的应用程序中遇到了这个需求。我将尝试使用onStartCommand向Intent Service发送一条消息以停止工作(例如,设置一个布尔标志stopWork = true),并在工作任务期间或下一个排队任务之前对其进行评估。IntentService不会立即停止,但会跳过所有待处理的任务。希望能有所帮助。我也会尝试自己实现。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接