Loopers - 处理程序 - 线程

时间:2015-08-14 15:13:50

标签: java android android-looper

所以,我正在使用一些执行看似异步任务的代码,并使用典型的回调/侦听器模型来接收回调。

我的问题是,如果我举起调用该操作的线程,有时候回调就不会触发。

考虑以下代码段:

doAsync(new Callback(){

    // Callback here
});

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

考虑到我从Thread A调用此代码,有人可以概述在此次通话后阻止Thread A的效果。

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

1 个答案:

答案 0 :(得分:0)

调用Async Task不会阻塞主线程... doInBackground方法执行后台线程中的操作...如果要在后台执行完毕后更新UI,则必须覆盖onPostExecute()方法。 ...还有其他一些UI线程的钩子,就像onProgressUpdate和AsyncTask中的OnCancelled ....请查看AsyncTask的java文档了解详情