我在后台线程中保存了一个相当大的位图。大约需要一秒钟。主线程将尝试将相同的文件加载到画布中。如何告诉主线程等到它完成保存?
我想知道如何检查文件,而不是如何等待;对不起有误。
由于各种原因,位图对象已从主线程的内存中删除。
是否有标准方法可以检查文件是否正在使用,还是应该使用解决方法?
答案 0 :(得分:6)
FileObserver
课程完全符合您的需求。 Here is the documentation。它易于使用。在写入后关闭观察文件时,将使用onEvent
作为参数调用CLOSE_WRITE
回调。
答案 1 :(得分:0)
使用AsyncTask
运行后台线程并在完成后更新UI。它专为此任务而设计。
另请注意,您永远不应该占用UI线程(比如等待后台线程完成),因为这会阻止UI交互,并且您的UI将无法响应或更糟糕的是您可能会获得ANR.
答案 2 :(得分:0)
Android的AsyncTask适用于此问题: http://developer.android.com/reference/android/os/AsyncTask.html
你可以在doInBackground中更新位图,然后在onPostExecute上你可以通知主线程将它绘制到画布上。
编辑/他说的话