Android 多个IntentService调用与具有多个并行线程的单个服务
我需要对400个大型图像文件执行两个操作。这些文件正在通过专用网络下载到folderAAndroid 多个IntentService调用与具有多个并行线程的单个服务,android,multithreading,image,bitmap,filesystems,Android,Multithreading,Image,Bitmap,Filesystems,我需要对400个大型图像文件执行两个操作。这些文件正在通过专用网络下载到folderA 操作1:将文件从folderA移动到folderB 操作2:调整每个文件的大小 问题是我有一个很小的时间窗口,可以将文件从folderA移动到folderB,事实上,一旦照片到达folderA,它就需要在folderB中。我最好的方法是什么?现在我正在考虑两条途径 方法1(我现在的方法太慢): 使用FileObserver跟踪照片在文件夹中的时间 使用IntentService:从folderA获取图像
- 操作1:将文件从folderA移动到folderB
- 操作2:调整每个文件的大小
- 使用FileObserver跟踪照片在文件夹中的时间
- 使用IntentService:从folderA获取图像,调整图像大小,然后将新图像保存到folderB
- 使用FileObserver跟踪照片在文件夹中的时间
- 使用带有自定义处理程序的服务,该处理程序允许并行线程,并为每张照片创建一个新线程:从folderA获取图像,调整图像大小,然后将新图像保存到folderB
- 使用FileObserver跟踪照片在文件夹中的时间
- 使用IntentService:对于每个文件,首先将文件从folderA移动到folderB;然后启动另一个IntentService以调整文件大小
顺便说一句,folderA和folderB都是
环境下的某种级别。getExternalStorageDirectory()
您必须构建一个测试项目,并尝试最有效的方法。我会选择一个带有线程池的单一服务,根据设备的CPU核数,线程池中有多个线程,但除非您使用不同的方法运行一些指标,否则您无法真正判断什么是最好的。您必须构建一个测试项目,并尝试什么是最好的。我会选择带有线程池的单一服务,根据设备的CPU核数,线程池中有多个线程,但除非您使用不同的方法运行一些指标,否则您无法真正判断什么是最好的。