Chcem vedieť, kedy je asynctask ukončený, aby som mohol aktualizovať používateľské rozhranie.
Môže mi niekto pomôcť ???? Vďaka!!!
public String[] getinfo(int id) {
String[] QueueNo = null;
try {
new DLfromServer().execute("url link"); // this is the asynctask
// want to do stuff here after the asynctask is completed
// actually I want to return a string result after the task is finished....
}
} catch (JSONException e) {
Log.e("GetJSON", "Err:", e);
}
return QueueNo;
}
odpovede:
1 pre odpoveď č. 1chcem vedieť, kedy je asynctask hotový, aby som mohol aktualizovať používateľské rozhranie.
Áno, môžete použiť onPostExecute
metóda, ktorá vyvolá UI vlákno po doInBackground
vykonanie je dokončené.
Ak chcete získať údaje späť na vlákno hlavného používateľského rozhrania, použite AsyncTask.get () spôsob vykonávania AsyncTask, pretože táto metóda počká na vlákno používateľského rozhrania do doInBackground
vykonanie je dokončené.
String str_result= new DLfromServer().execute("url link").get();
// now use str_result for Updating result
POZNÁMKA :- budete musieť zavolať AsyncTask.get()
vo vnútri vlákna namiesto hlavného používateľského rozhrania. V opačnom prípade by metóda get () zmrazila hlavné vlákno do doInBackground
vykonanie je dokončené