gpt4 book ai didi

java - Android - 我应该在程序中使用 IntentService 还是 ThreadPool?

转载 作者:行者123 更新时间:2023-12-01 13:37:57 25 4
gpt4 key购买 nike

我的程序将搜索文件系统,所以我知道我需要 Service 或 IntentService,但我不确定是哪一个。 (以前我想使用AsyncTask,但那不合适)

我知道 IntentService 一次会运行一个线程,实际上这可能是我想要的,但不确定

如果手机中有可移动SD卡,我将在单独的线程上执行搜索。一个线程将搜索内部 SD 和另一个外部 SD。

问题是,我可以输入要在其中搜索文件的文件夹的多个路径,但我将仅对一个文件系统使用一个线程。例如,我在内部 SD 上有 10 个路径可供搜索,在外部 SD 上有 5 个路径可供搜索,但我将仅使用两个线程。一个搜索内部,一个外部,当任何线程完成时,它将启动另一个内部搜索,搜索外部时也会发生同样的情况。

我不知道如果可能的话,使用具有多个线程的 Service 或两个 IntentService 是否会更好?

最佳答案

我会使用可以将任务分发到线程池的Service(工作方式与IntentService类似,但不是子类)。

IntentService 只能执行 1 个后台线程。如果这对您来说足够了(它的性能可能接近多线程实现),您也可以这样做。只需将每个目录/文件系统/任务作为服务处理的 Intent 入队即可。

它应该是一个Service,因为 Android 在不知道正在运行的任务时会终止您的应用程序。普通线程不被视为正在运行。

关于java - Android - 我应该在程序中使用 IntentService 还是 ThreadPool?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21119629/

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