-1

一部のコードを通常のメソッドから AsyncTask doInBackground メソッドに移動しましたが、ファイルリーダー以外はすべて正常に動作しています。「コンテキストを解決できません」というメッセージが表示されます。「context.getApplicationContext()」を完全に取り出してみましたが、「メソッド openFileInput(String) はタイプ AlarmReceiver.backgroundputFTP に対して未定義です」というメッセージが表示されます。アイデアはありますか?

public void putFTP(Context context)
     {
         new backgroundputFTP().execute();  
     }

  private class backgroundputFTP extends AsyncTask< Void, Void,Void >
  {  

        @Override  
        protected Void doInBackground(Void... params) 
        {  
     //
 // Push query result text file to FTP server
 //

  FTPClient client = new FTPClient();
  FileInputStream fis = null;
  Looper.prepare(); 

  try {
      client.connect(ipAddress);
      client.enterLocalPassiveMode();
      client.login(user, pass);

      //
      // Create an InputStream of the file to be uploaded
      //
      filename = "sdcardstats.txt";
      fis = context.getApplicationContext().openFileInput(filename);
4

2 に答える 2

0

これを試して:

fis = YourActivity.this.getContext().openFileInput(filename);

YourActivityActivityあなたがあなたのAsyncTaskを持っている範囲です

于 2012-09-05T16:16:44.070 に答える
0
 fis = context.getApplicationContext().openFileInput(filename);

このコンテキストをどこで定義しましたか? これを試して 。

public Context cContext ;
public void putFTP(Context context)
     {
           cContext = context;
         new backgroundputFTP().execute();  
     }

  private class backgroundputFTP extends AsyncTask< Void, Void,Void >
  {  

        @Override  
        protected Void doInBackground(Void... params) 
        {  
     //
 // Push query result text file to FTP server
 //

  FTPClient client = new FTPClient();
  FileInputStream fis = null;
  Looper.prepare(); 

  try {
      client.connect(ipAddress);
      client.enterLocalPassiveMode();
      client.login(user, pass);

      //
      // Create an InputStream of the file to be uploaded
      //
      filename = "sdcardstats.txt";
      fis = cContext.openFileInput(filename);
于 2012-09-05T18:00:31.360 に答える