3

基本的に、ファイルをダウンロードするためのAsynctaskが1つあります。これはメインのUIアクティビティからは問題なく呼び出すことができますが、別のアクティビティから呼び出す場合はどうなりますか?つまり、1つのアクティビティは、マニュアルをダウンロードするためのリンクを含むメインメニューであり、別のアクティビティは、使用可能なすべてのドキュメントのListViewです。ダウンロードする。

このために別の非同期タスクを作成する必要がありますか?

4

2 に答える 2

6

MainActivity に AsyncTask をインナークラスとして持っていると思います。AsyncTask のコードを取得して、両方のクラスにパブリック (またはアクセス可能) な新しいファイルに配置できます。AsyncTaskのインスタンスを複数回実行することはできませんが、AsyncTask の複数のインスタンスを作成できることに注意してください。

class MainActivity{
new MyTask().execute();
}

.

class DifferentActivity {
  new MyTask().execute();//a new instance
}

.

class MyTask extends AsyncTask{
   public MyTask(Context context){
   }//Pass in context.
}

すべての異なるファイル。

于 2013-01-28T19:47:50.763 に答える
0

Asynctasks は、通常実行中のアクティビティである UI スレッドから呼び出す必要があります。

これらのアクティビティはインテントを通じて開始され、独自の UI を表示するように聞こえるので、それらから Asynctasks を実行できます。

唯一の規定は、すべてのアクティビティが参照できる場所で asynctask を宣言/定義する必要があることです (したがって、com.myapp.MyMainMenuActivity などのアクティビティも含む非同期タスク com.myapp.MyAsyncTask を拡張するクラスを作成することもできます)。

于 2013-01-28T19:51:13.497 に答える