I have two questions:
- Can we start/execute an Async Task within a worker thread?
- If yes, the methods
onPreExecute(),onProgressUpdate(Progress...)andonPostExecute(Result)are invoked on the UI thread?
I wanna know that because I have a TCP connection running on a worker thread and when a packet is received I wanna start a new thread to make the parse of this packet and after that refresh some data structures on the UI thread.
Thanks in advance!
From the Android AsyncTask doc:
“The task instance must be created on the UI thread.”, and
“execute(Params…) must be invoked on the UI thread.”
So I think the answer to your first question is “no”. As far as the second, those methods are all invoked on the UI thread, but it’s a bit moot.
EDIT: I’m not sure if those are absolute restrictions, or strong suggestions, but in both cases, I’d recommend following them.