Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Welcome To Ask or Share your Answers For Others

Categories

0 votes
248 views
in Technique[技术] by (71.8m points)

android - Start Async Task within a worker thread

I have two questions:

  • Can we start/execute an Async Task within a worker thread?
  • If yes, the methods onPreExecute(), onProgressUpdate(Progress...) and onPostExecute(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!

See Question&Answers more detail:os

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome To Ask or Share your Answers For Others

1 Reply

0 votes
by (71.8m points)

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.


与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
OGeek|极客中国-欢迎来到极客的世界,一个免费开放的程序员编程交流平台!开放,进步,分享!让技术改变生活,让极客改变未来! Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Click Here to Ask a Question

...