我有一个应用程序,可以将文本文件从网络下载到应用程序专用文件夹/data/data/com.example.app
。该文件包含下载时需要读取的一些数据。
我的应用中的代码:
private class DownloadTextFile extends AsyncTask<String, Integer, String> {
@Override
protected String doInBackground(String... sUrl) {
// download text file
}
@Override
protected void onPreExecute() {
super.onPreExecute();
// read text file
}
当我尝试阅读文本文件时,出现file not found
错误
当我关闭应用程序并重新打开它时,应用程序会正确读取下载的文本文件。
编辑:
哈哈,我太傻了。谢谢你们how can i make this question as answered
答案 0 :(得分:1)
您应该阅读Async Class的onPostExecute(...)
方法中的数据
因为onPostExecute(...)
方法将在doInBackground(...)
方法完成处理后执行,因此在调用onPreExecution(...)
方法之前调用doInbackground(...)
方法。因此,目前您正在尝试打开尚未在doInBackground(...)
方法中下载的文件
你的代码应该是这样的:
private class DownloadTextFile extends AsyncTask<String, Integer, String> {
@Override
protected String doInBackground(String... sUrl) {
// download text file
}
@Override
protected void onPostExecute(.....) {
super.onPostExecute();
// read text file
}