对于我的应用程序,我使用三个文件来存储本地数据,其中两个在应用程序启动时进行检查并远程更新(如果有更新的版本可用或文件尚不存在)。第三个是可以在应用程序运行时定期存储的用户数据。
这三个都使用相同的方法来保存文件:
public boolean setLocalFile(String Filename, String FileText, Context con) {
try {
FileOutputStream fos = con.openFileOutput(Filename, Context.MODE_PRIVATE);
fos.write(FileText.getBytes());
fos.close();
return true;
} catch(Exception e) {
handleError(e); // local method that simply does a System.out.println
return false;
}
}
现在第三个文件写得很好,但前两个(在启动时检查并写入)根本不写。在调试中,似乎完全跳过了 setLocalFile 方法而没有引发异常或使应用程序崩溃,并且报告的唯一错误日志似乎是:
07-11 16:14:13.162: ERROR/AndroidRuntime(1882): ERROR: thread attach failed
07-11 16:14:18.882: ERROR/gralloc(62): [unregister] handle 0x3bfe40 still locked (state=40000001)
不幸的是,我也没有在网上找到任何有用的东西。
这让我很困惑——我不知道为什么在这种特殊情况下不写。有任何想法吗?