У меня есть все мои асинхронные вызовы в их собственных классах, поэтому я не хочу, чтобы глобальные vars были установлены aync'ly. Для этого я хочу вернуть объекты, например, строку из моих методов asprocess после asunc.как вернуть результат от вызова asyn
это можно сделать?
Ниже приведена моя общая структура для моих классов, я хочу вернуть строку, например, из onPostExecute(). Я вижу, что делегаты упоминаются в других местах, но это кажется очень грязным, уверен, что есть способ получить тип возврата к классу или методам?
class GetStuffAsyncly extends AsyncTask<String, String, String>
{
// my vars....
public myconstructor(String dialogMessage, Context con)
{
this.qDialog = new ProgressDialog(con);
this.dialogString = dialogMessage;
this.context = con;
}
/**
* Before starting background thread Show Progress Dialog
* */
@Override
protected void onPreExecute()
{
super.onPreExecute();
do stuff like fire dialog
}
@Override
protected String doInBackground(String... args)
{
// do stuff in background...
return data;
}
/**
* After completing background task Dismiss the progress dialog
* **/
protected void onPostExecute(String jsonString)
{
// dismiss the dialog after getting all data
dialog.dismiss();
}
}
с обратным вызовом (интерфейсом) является правильным способом – Emil
Thx для ответа Boss. Если возможно, можете ли вы расширить код для демонстрации обратного вызова? – Fearghal
Проверьте ответ на этот вопрос: http://stackoverflow.com/questions/6053602/what-arguments-are-passed-into-asynctaskarg1-arg2-arg3 – karvoynistas