如何判断当前是否正在写入文件?

时间:2011-09-22 18:20:11

标签: android file

我在后台线程中保存了一个相当大的位图。大约需要一秒钟。主线程将尝试将相同的文件加载到画布中。如何告诉主线程等到它完成保存?

编辑:

我想知道如何检查文件,而不是如何等待;对不起有误。

由于各种原因,位图对象已从主线程的内存中删除。

是否有标准方法可以检查文件是否正在使用,还是应该使用解决方法?

3 个答案:

答案 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上你可以通知主线程将它绘制到画布上。

编辑/他说的话