1

我有一个应用程序,可将文本文件从网络下载到应用程序私有文件夹/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

4

1 回答 1

1

您应该阅读onPostExecute(...)异步类的方法中的数据。
因为onPostExecute(...)方法将在doInBackground(...)方法完成处理后执行,而 asonPreExecution(...)方法是在调用方法之前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

    }
于 2013-08-18T14:42:36.297 回答