私は以下のように非同期タスクを使用しています。しかし、以下のクラスを使用しているさまざまなアクティビティに基づいて、onPostExecute内で別の関数を呼び出せるようにする必要があります。たとえば、アクティビティがロードされるとき、私はそれをそのまま使用しますが、ユーザがアクティビティのリストアイテムをクリックしたとき、私は同じクラスを使用したいが、コールバックのfunctonは異なる必要がありますか?アンドロイドでこれを行う方法はありますか? (2つのオプションがある場合は、多分アクティビティ例えば、インスタンス、または一部enumaration、またはブール値)アンドロイドのAsyntask
class PerformOPTask extends AsyncTask<Void, String, ServerOutput> {
// connector=new JSONConnector();
Connector connector;
String curUrl;
ServerOutput currentSO;
PerformOPTask(String url,ServerOutput serverOutput){
//connector = new UnitTestConnector();
connector = new JSONConnector();
curUrl=url;
currentSO=serverOutput;
}
@Override
protected ServerOutput doInBackground(Void... params) {
return connector.getData(URLUtils.getFormattedUrl(curUrl),currentSO);
}
@Override
protected void onPostExecute(ServerOutput output) {
displayData(output);
Toast.makeText(BaseFragmentActivity.this, "Done!", Toast.LENGTH_SHORT).show();
}
}
narek.gevorgyan @の溶液を使用するよりも拡張性、およびまだ拡張可能なものを提供することです*複数のクラスからAsyncTaskを呼び出すのに十分な*(Mariaのソリューションはもっとです)。 AsyncTaskクラスの内部メンバに 'Activity'リファレンスを格納し、そのメンバを最初のToastパラメータとして使用するだけです。 – davidcesarino