2

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

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

考虑以下代码片段:

doAsync(new Callback(){

    // Callback here
});

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

考虑到我调用此代码,Thread A有人可以概述一下Thread A在此调用后阻塞右侧的效果。

另外,运行 Handler 的效果是什么,main looperlocal looper会确定执行上述回调的线程吗?我问这个是因为如果我阻塞Thread A,那么回调永远不会执行。

4

1 回答 1

0

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

于 2015-08-14T15:36:44.600 回答