【发布时间】:2010-07-21 15:20:56
【问题描述】:
Android 文档说 AsyncTask postExecute() 在 UI 线程上被调用。我的印象是postExecute() 是从调用execute() 的线程中调用的:我一直在具有自己线程的后台服务中使用 AsyncTask,并且在服务线程中调用了 postExecute(),而不是在主线程中调用线程。
但是,我最近遇到了一个根本没有调用 postExecute() 的问题,同时引发了异常:“向死线程上的处理程序发送消息”。
具体怎么样:
- AsyncTask 是否只能在主线程中使用?
- 如果不是,应该在哪个线程中调用 postExecute():总是 UI 线程,还是 execute() 调用线程?
谢谢
【问题讨论】:
-
文档 appears 也误导了我,虽然我没有遇到异常,但我的经验是在外部使用
AsyncTaskUI 线程onPostExecute来自调用线程,不一定是 UI 线程(如果需要操作 UI,则需要Handler)。
标签: android multithreading android-asynctask