有点复杂的情况——
- 服务被打包为一个单独的 APK,在清单中只包含它;
- Service 接受传入的请求并使用 MessageHandler 处理它们;
在一种情况下,处理程序会生成一个 AsyncTask,如下所示:
private class XHandler implements MessageHandler { @Override public void handleMessage(Message incoming) { Bundle b = incoming.getData(); ... new XAsyncTask(...).execute(); } }
教科书式的简单异步任务报告进度
- ...在 ICS 中,但不在 Gingerbread 中。
它是什么 - 一个错误?
AsyncTask 文档说“onProgressUpdate(Progress...),在调用 publishProgress(Progress...) 后在 UI 线程上调用。” 但是,没有用于独立服务的 UI 线程之类的东西,是吗?
服务文档说“服务在托管它的应用程序的主线程中运行,b 默认” - 这是否构成 UI 线程?
更新 2012/07/10:将 android:targetSdkVersion="10" 更改为 android:targetSdkVersion="15" 在 ICS 上运行应用程序时会产生相同的效果。到目前为止,唯一有效的组合是在 API 15 上运行的 targetSdkVersion="10"。