gpt4 book ai didi

android - 有没有办法一次运行多个 IntentService?

转载 作者:行者123 更新时间:2023-11-29 22:05:40 26 4
gpt4 key购买 nike

我想我明白了 IntentService 类的意义。它处理一个队列,防止太多或更多的服务实例一起执行。

我发现它很有用,但是如果我从 IntentService 派生了太多具有不同用途的类,并且我希望它们一起运行而不互相等待怎么办?

如果有任何我可以设置的标志或属性,那就太好了,它会说这样的话:“允许太多或更多不同的 Intent 服务派生类在他自己的队列上运行每个服务”

有什么办法吗?

我知道所有其他替代方案,例如“常规”服务、AsyncTesk、手动管理线程,所以请不要建议我考虑改用它们。我知道他们的优点和局限性。

提前致谢。

最佳答案

没有什么可以阻止两个 IntentService 一起执行。

例如,给定一个服务,ServiceA

public class ServiceA extends IntentService {
...
}

ServiceA 的子类恰本地命名为 ServiceB

public class ServiceB extends ServiceA {
}

ServiceBServiceA 共享一个执行器/队列(或任何相关的东西),即两者可以同时执行。您可以通过在 ServiceA 中放置一个循环来轻松地对此进行测试,例如

protected void onHandleIntent(Intent intent) {
for (int i = 0; i < 20; i++) {
System.out.println(getClass().getSimpleName() + " says hello");
try {
Thread.sleep(2000L);
} catch (InterruptedException e) {
return;
}
}
}

然后调用

startService(new Intent(this, ServiceA.class));
startService(new Intent(this, ServiceB.class));

来自您的Activity。它们将同时运行。

关于android - 有没有办法一次运行多个 IntentService?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10817395/

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