gpt4 book ai didi

Android:多个 IntentServices - stopService

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

我使用唯一的 id 值多次启动 IntentService。当我重新创建 Intent 并使用它在当前 IntentService 上调用 stopService 时,整个 IntentService 队列在停止当前 IntentService 的基础上被取消。此外,对队列中的 IntentService 调用 stopService 无效。

启动服务:

Intent intent = new Intent(context, IntentService.class);
intent.putExtra("action", "scan");
intent.putExtra("id", id);
context.startService(intent);

停止服务

Intent intent = new Intent(context, IntentService.class);
intent.putExtra("action", "scan");
intent.putExtra("id", id);
context.stopService(intent);

我希望从队列中停止/删除具有关联 ID 的 IntentService,然后让队列的其余部分运行。

最佳答案

我认为您可能必须在此处实现您自己的 Intent 服务类型。 Looking at the code

尽管查看了 stopSelf(int) 方法,但如果您知道每个 Intent 是用什么创建的,您也许可以手动执行此操作。

mActivityManager.stopServiceToken(
new ComponentName(this, mClassName), mToken, startId);

所以像这样:

mActivityManager.stopServiceToken(
new ComponentName(this, IntentService.class.getSimpleName()), null, mStartId);

我还没有尝试过这个,但可能是朝着正确方向的插入。虽然我认为它可能不会做任何事情,因为它只会停止运行服务。

否则,您将不得不创建自己的 IntentService,您可以在其中触发删除 Intent 。可能值得微推@commonsguy

干杯,
克里斯

关于Android:多个 IntentServices - stopService,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12087495/

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