MODE_PRIVATE не может быть преобразован в переменную в openFileOutput

Я пытаюсь сохранить 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) не определен для типа DownloadBook

Как решить эту проблему?


person user3388473    schedule 23.03.2014    source источник


Ответы (1)


Используйте контекст действия или приложения для вызова метода openFileOutput из класса DownloadBook как:

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

Если DownloadBook является отдельным классом Java, используйте конструктор класса для получения контекста Activity для вызова метода openFileOutput как:

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());
person ρяσѕρєя K    schedule 23.03.2014
comment
выдает ошибку: метод getApplicationContext() не определен для типа DownloadBook - person user3388473; 23.03.2014
comment
@user3388473 user3388473: это DownloadBook отдельный класс Java или внутренний класс Activity? - person ρяσѕρєя K; 23.03.2014