Android刪除文件后重新創建時偶爾出現 open failed: EBUSY (Device or resource busy)錯誤,該錯誤是Android系統的一個bug,大概的意思類似於windows的“改文件正在被使用”。產生這個錯誤的原因是Android在刪除文件后沒有及時釋放文件鎖,導致文件在重新創建時仍然處於被某一進程占用的狀態。解決的方法是:在刪除文件之前對該文件進行重命名,這樣可以保證在刪除文件時系統持有的文件鎖是重命名之后的文件鎖。代碼可以這樣寫:
final File to = new File(file.getAbsolutePath() + System.currentTimeMillis()); file.renameTo(to); to.delete();
最后再重新創建文件就可以了。