当涉及到小部件时,我们可以从服务中调用异步任务吗?
我目前有一个很小的应用程序,可以查找实时的体育比赛比分,并显示相同的结果。主类调用异步任务。异步任务调用2个过程。第一个解析XML文件并获得html链接的程序。第二个用于读取html文件。现在,我想将此应用程序转换为主屏幕小工具。
我可以从服务内部调用我的异步任务吗?有没有指向例子的建议?
请帮帮忙。
问候你,山姆
发布于 2011-03-10 21:43:06
您不需要在服务中创建AsyncTask。该服务已经在后台线程上运行,因此您可以在该服务中执行您在doInBackground中执行的任何密集任务。您应该仍然能够在服务中调用AsyncTask,但此时不需要使用AsyncTask。
Here是一个带有服务的小部件示例。
发布于 2011-03-10 21:42:26
如果原始活动和服务在同一个包中,或者其中一个适当地依赖于另一个,那么您可以毫无问题地调用相同的异步任务。只要异步任务是通用格式的,因此它将数据提供回调用它的任何东西(通过回调或处理程序),而不是总是将结果发布到应用程序的UI,就不会有重大问题。
发布于 2012-04-12 22:35:26
这里是基本的区别:
线程或异步任务在后台线程中执行它们的任务,因此它们不会阻塞主线程,而服务在主线程中执行它的工作。因此,如果服务正在执行密集型任务,例如调用web服务,它可能会阻塞主线程,直到它完成。因此,对于密集型任务,服务应该在后台线程中运行它的工作。
摘要,线程(异步任务)在后台执行任务(不阻塞主线程),服务可以阻塞主线程,直到它完成。
https://stackoverflow.com/questions/5260205
复制相似问题