所以,我正在使用一些执行看似异步任务的代码,并使用典型的回调/侦听器模型来接收回调。
我的问题是,如果我举起调用该操作的线程,有时候回调就不会触发。
考虑以下代码段:
doAsync(new Callback(){
// Callback here
});
doAsync()
的内部使用处理程序和main looper
。
考虑到我从Thread A
调用此代码,有人可以概述在此次通话后阻止Thread A
的效果。
此外,在main looper
和local looper
上运行处理程序会产生什么影响?它会确定执行上述回调的线程吗?我问这个,因为如果我阻止Thread A
,则回调永远不会执行。
答案 0 :(得分:0)
调用Async Task不会阻塞主线程... doInBackground方法执行后台线程中的操作...如果要在后台执行完毕后更新UI,则必须覆盖onPostExecute()方法。 ...还有其他一些UI线程的钩子,就像onProgressUpdate和AsyncTask中的OnCancelled ....请查看AsyncTask的java文档了解详情