2015-08-14 92 views
2

因此,我正在处理一些执行看似异步任务的代码,并使用典型的回调/侦听器模型来接收回调。Loopers - 处理程序 - 线程

我的问题是,如果我阻止调用该操作的线程,有时回调从不会触发。

考虑下面的代码片断:

doAsync(new Callback(){ 

    // Callback here 
}); 

doAsync()的内部使用的处理程序和main looper

考虑到我把这个代码从Thread A中调出来,有人可以在这次调用之后概述阻塞Thread A的影响。

另外,在main looperlocal looper上运行处理程序会产生什么影响,它会确定执行上述回调的线程?我问这个,因为如果我阻止Thread A那么回调从不执行。

回答

0

调用异步任务不会阻塞主线程... doInBackground方法执行后台线程中的操作...如果您想在后台执行完成后更新UI,则必须重写onPostExecute()方法....还有一些其他UI线程的钩子太像onProgressUpdate和OnCancelled在AsyncTask ....请检查AsyncTask的文档的详细信息

+0

嗨,感谢您的输入,但我的问题与Async无关任务。 – conor