gpt4 book ai didi

android - 中断 IntentService

转载 作者:行者123 更新时间:2023-11-29 18:02:04 26 4
gpt4 key购买 nike

我正在创建一个应用程序,我需要在其中处理可能非常庞大且可能需要一些时间的数据。

现在我阅读了很多关于 IntentService 的资料,实际上我已经将它实现为处理 REST 调用的通信类,但现在我试图将它用于长时间运行的数据处理。

我在标题栏中添加了一个进度指示器,但现在我希望能够在用户单击它时取消操作。

是否有一些优雅的方法来做到这一点?(类似于 Thread.interrupt())目前我有一个静态 bool 值“正在运行”并且我已经将 onStartCommand 覆盖为

@Override
public int onStartCommand(Intent intent, int flags, int startId) {
if (intent.getAction() != null && intent.getAction().equals("stop")) {
running = false;
}
onStart(intent, startId);
return START_NOT_STICKY;
}

我觉得这很麻烦而且不够优雅,我觉得我可能会滥用 IntentService 来做一些它不应该做的事情。有没有更优雅的方法来做到这一点?

stopSelf() 对我不起作用,因为我需要中断正在做的事情。我试过了,代码继续执行。

我想到了 asynctask,但我担心任务不会存活。(操作可能需要长达 15 分钟)

最佳答案

我认为 IntentService 并不真正适合您的目的。相反,您可以直接扩展 Service ( http://developer.android.com/guide/components/services.html#ExtendingService ) 并在特定启动命令上清除消息队列(在本例中为 Handler)并执行您的完成过程。

关于android - 中断 IntentService,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15413430/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com