我的程序将搜索文件系统,所以我知道我需要Service或IntentService,但我不确定是哪一个。 (以前我想使用AsyncTask,但这不合适)
我知道IntentService会一次运行一个线程,实际上这可能是我想要的但不确定
如果手机中有可移动的SD卡,我将在不同的线程上执行搜索。一个线程将搜索内部SD和另一个外部SD。
问题是,我可以输入多个路径到文件夹中搜索文件,但我只使用一个线程用于一个文件系统。例如,我有10条路径在内部SD上搜索,5条在外部搜索,但我只使用两个线程。一个搜索内部,一个外部,当任何线程完成时,它将在内部启动另一个搜索,在搜索外部时也会发生相同的搜索。
我不知道使用多个线程的服务或两个IntentServices是否更好,如果可能的话?
答案 0 :(得分:1)
我会使用Service
(类似于IntentService
但不是子类)可以将任务分配给线程池。
IntentService
只能做1个后台线程。如果这对你来说足够了(它可能接近多线程实现)你也可以这样做。只需将每个目录/文件系统/任务排队作为处理服务的意图。
它应该是Service
,因为当Android不知道运行任务时会杀死你的应用。普通线程不被视为正在运行。