아래와 같이 비동기 작업을 사용하고 있습니다. 하지만 난 아래 클래스를 사용하고 다른 활동에 따라 onPostExecute 안에 다른 함수를 호출 할 수 있어야합니다. 예를 들어 액티비티가로드 될 때 아래의 클래스를 그대로 사용하지만, 사용자가 액티비티의 listitem을 클릭하면 아래의 같은 클래스를 사용하지만 콜백 함수는 달라야합니다. 안드로이드에서이 작업을 수행 할 수있는 방법이 있습니까? (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를 호출하기에 충분할만큼 * (마리아의 솔루션이 더 많음). AsyncTask 클래스의 내부 멤버에 'Activity' 참조를 저장하고 첫 번째 Toast 매개 변수로 해당 멤버를 사용하면됩니다. – davidcesarino