有点复杂的情况 -
在一种情况下,处理程序产生如下的AsyncTask:
private class XHandler implements MessageHandler {
@Override
public void handleMessage(Message incoming) {
Bundle b = incoming.getData();
...
new XAsyncTask(...).execute();
}
}
教科书简单异步任务报告进度
它是什么 - 一个错误?
AsyncTask文档说“onProgressUpdate(Progress ...),在调用publishProgress(Progress ...)之后在UI线程上调用。”但是,没有针对独立服务的UI线程,是吗?
有关服务的文档说“服务在托管它的应用程序的主线程中运行,b默认” - 这是否构成UI线程?
UPDATE 2012/07/10:将android:targetSdkVersion =“10”更改为android:targetSdkVersion =“15”会在ICS上运行应用时产生相同的效果。到目前为止唯一的工作组合是在API 15上运行的targetSdkVersion =“10”。
答案 0 :(得分:0)
我认为关于main / ui线程的问题在此页面上得到了相当好的解释:Threads
启动应用程序时,系统会为应用程序创建一个执行线程,称为“main”。此线程非常重要,因为它负责将事件分派给适当的用户界面小部件,包括绘图事件。它也是您的应用程序与Android UI工具包中的组件(来自android.widget和android.view包的组件)交互的线程。因此,主线程有时也称为UI线程。
不确定如何帮助您使用AsyncTask。你想做什么?您的服务如何实施? AsyncTask完成后你想做什么?
为什么不使用IntentService?