gpt4 book ai didi

Android:多个 Intent 服务或一个具有多个 Intent 的 Intent 服务?

转载 作者:塔克拉玛干 更新时间:2023-11-01 21:24:53 27 4
gpt4 key购买 nike

我对 intentService 有点困惑。文档说,如果您向 intentService 发送多个任务( Intent ),那么它将在一个单独的线程上一个接一个地执行它们。我的问题是 - 是否可以同时拥有多个 intentService 线程?您如何在代码中区分是在同一个 intentService(同一个线程)上创建三个不同的 intent,还是三个单独的 intentService,每个 intentService 都有自己的线程,每个 intent 都需要执行?

换句话说,当您执行命令 startService(intent) 时,您是将 Intent 放入单个队列还是每次都启动一个新队列?

Intent someIntent1 = new Intent(this, myIntentService.class);
Intent someIntent2 = new Intent(this, myIntentService.class);
Intent someIntent3 = new Intent(this, myIntentService.class);
startService(someIntent1);
startService(someIntent2);
startService(someIntent3);

最佳答案

1)是否可以同时拥有多个intentService线程?

没有,每个 IntentService 只有一个 HandlerThread它用于按照调用“startService”的顺序执行请求。除非出于某种原因您决定在 IntentService 中生成您自己的线程,但这可能首先会破坏使用 IntentService 的目的。具有相同 list 声明的服务,即服务名称 =“.MyIntentService”(这对于普通服务而言是相同的)在其进程中作为单例运行,因此在服务被终止之前,相同的服务将收到额外的启动请求。

2) 您如何在代码中区分在同一个 IntentService 上创建三个不同的 Intent ?

要区分请求,请按预期使用 Intent 系统!为服务可以执行的不同作业提供不同的“操作”,并传递 IntentService 为该特定作业正确运行所需的任何额外内容,作为您用于启动服务的 Intent 对象中的额外内容。

关于Android:多个 Intent 服务或一个具有多个 Intent 的 Intent 服务?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37795337/

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