0

AsyncTask にエラーがあります。FileOutputStream を使用してデータをファイルに保存しようとしましたが、このデータを永続的に保存する必要があるためです。

だから私はこのチュートリアルを読んでいます:チュートリアル

しかし、コードを AsyncTask に追加すると、次のエラーが発生します。

「メソッド openFileOutputStream(String, int) はタイプ MainActivity.DownloadSpielplan に対して定義されていません」

DownloadSpielplan は私の AsyncTask です

private class DownloadSpielplan extends AsyncTask <Void, Void, String>
    {
        @Override
        protected void onPreExecute() {
            // TODO Auto-generated method stub
            super.onPreExecute();
        }
        @Override
        protected String doInBackground(Void... params) {
            // TODO Auto-generated method stub


            //dont wonder reverseString is created and filled i delete this part from the code for more readability


            FILENAME = "SpielTag";
            JOUR = reverseString;

            FileOutputStream fos = openFileOutputStream(FILENAME, Context.MODE_PRIVATE);
            fos.write(JOUR.getBytes());
            fos.close();


            return reverseString;
        }

        @Override
        protected void onPostExecute(String reverseString) {
            // TODO Auto-generated method stub
            Toast.makeText(getApplicationContext(), "Download abgeschlossen!", Toast.LENGTH_LONG).show();
            super.onPostExecute(reverseString);
        }
    }   

問題は、AsyncTask から openFileOutputStream を呼び出すことだと思いますが、それを修正する方法が見つかりません。(Androidでは本当に新しいので)

4

2 に答える 2

0

openFileOutputStreamではないクラスからメソッドにアクセスしようとしているためですActivity。代わりに、コードを次のように記述します-

FileOutputStream fos = MainActivity.this.openFileOutputStream(FILENAME, Context.MODE_PRIVATE);

または、他のオプションは、コンストラクターで呼び出しているアクティビティからコンテキストを渡し、DownloadSpielplanそのコンテキストを使用してファイル出力を開きます-

FileOutputStream fos = context.openFileOutputStream(FILENAME, Context.MODE_PRIVATE);
于 2013-08-26T13:03:46.737 に答える