我必须编辑大量的位图文件,所以我想使用我设备的所有内核来加速这个过程。我认为这将是一个很好的解决方案:
如何在继续执行其他任务之前确保所有线程都已完成,例如保存图片或返回完全处理了位图的消息?
答案 0 :(得分:1)
Join每个工作线程在你启动所有工作线程之后。
答案 1 :(得分:1)
我认为您应该制作另一个等待所有其他线程完成的AsyncTask
,因此在等待doInBackground()
的{{1}}方法中,您可以执行以下操作:
AsyncTask
然后在“等待任务”的while( task1.getStatus()!=AsyncTask.Status.FINISHED
|| task1.getStatus()!= AsyncTask.Status.FINISHED){
Thread.sleep(500);
}
方法中,您可以继续执行其他任务。
答案 2 :(得分:1)
使用一个数组扩展Handler.Callback
类,该数组跟踪处理特定图像的线程(可能还需要扩展Thread
,以便您可以指定Bitmap
的哪个部分特定线程正在处理),每个线程的末尾处理sendMessage
到您使用扩展类实例创建的Handler
对象。
覆盖扩展类中的handleMessage
,以从特定线程的处理数组存储结果中接收特定线程删除线程的结果。处理数组大小为0时,将结果放在一起。