我需要对400个大图像文件执行两项操作。这些文件正通过专用网络下载到folderA。
问题是我有一个很小的时间窗口用于将文件从folderA移动到folderB,事实上,一旦照片到达folderA,它就需要在folderB中。这样做的最佳方法是什么?现在我正在考虑两个途径。
方法1(我现在拥有的,太慢了):
方法2(想知道):
方法3:
我已经知道方法1不够快,因为它是我现在使用的方法。因此,在方法2和方法3之间,哪一个更快,为什么?例如,我们谈论的是400个大图像文件。操作系统是否对单个服务可以拥有多少并发线程施加限制?我应该担心增加线程池吗?在我使用两个服务(MoveIntentService和ResizeIntentService)的情况3中,如何告诉android在调用ResizeService之前运行“all”对MoveService的调用?
我知道ResizeIntentService会对所有调用进行排队。但我对此感到满意。我只需要MoveIntentService就可以非常快速地移动文件。
另外,虽然我说400个文件,但我真的不知道有多少文件,因此在开始调整大小部分之前我不能等待folderB已满。我也知道我可以使用单个IntentService来首先移动文件,然后启动一个线程来调整文件大小。
同样,在Android中移动文件(即指针与实际重新复制)是否便宜?我在这里假设相对于调整文件大小来移动文件非常便宜。
BTW文件夹A和文件夹B都在Environment.getExternalStorageDirectory()