我正在尝试保存html文件。我有扩展AsyncTask的类

public class DownloadBook extends AsyncTask<String, Void, String> {


在此类中,我有以下方法:

private void writeFile(String result, String title) throws FileNotFoundException {
        FileOutputStream fos = openFileOutput(title+".html", MODE_PRIVATE);
        PrintWriter pw = new PrintWriter(new BufferedWriter(
                new OutputStreamWriter(fos)));
        pw.print(result);
        pw.close();
    }


MODE_PRIVATE提供以下错误:


  MODE_PRIVATE无法解析为变量


然后我将其更改为Context.MODE_PRIVATE。现在,openFileOutput正在给出此错误:


  未定义类型的方法openFileOutput(String,int)
  资料下载


如何解决这个问题呢?

最佳答案

使用活动或应用程序上下文从openFileOutput类调用DownloadBook方法,如下所示:

FileOutputStream fos =
   getApplicationContext().openFileOutput( title+".html", Context.MODE_PRIVATE);


如果DownloadBook是单独的java类,则使用类构造函数获取用于调用openFileOutput方法的Activity上下文,如下所示:

public class DownloadBook extends AsyncTask<String, Void, String> {
private Context context;

  public DownloadBook(Context context){
   this.context=context;
  }

}


现在使用context调用openFileOutput方法:

FileOutputStream fos =
   context.openFileOutput( title+".html", Context.MODE_PRIVATE);


从Activity传递上下文到DownloadBook类构造函数:

DownloadBook obj_Downloadbook=new DownloadBook(getApplicationContext());

08-18 04:29