2011-03-10 43 views
2

当涉及到小工具时,我们可以从服务中调用异步任务吗?Android小工具:服务与异步任务

我目前有一个小应用程序查找实时体育比分并显示相同。主类调用异步任务。异步任务调用2个过程。第一个解析XML文件并获得html链接。第二个阅读该HTML文件。 现在我想将这个应用程序转换为主屏幕小部件。

我可以从服务中调用我的异步任务吗? 任何指向例子的指针?

请帮忙。

问候, 山姆

+0

哥们接受提高您的评级的答案... – JPM 2011-08-24 15:50:34

回答

0

如果原来的活动和服务都在同一个包,或一个是适当地依赖于对方,那么你可以调用没有问题同异步任务。只要异步任务采用通用格式,因此它将数据提供给它(通过回调或处理程序)的任何调用,而不是始终将结果发布到应用程序的UI,因此不存在重大问题。

+0

嗯我怎么可以使用处理程序或回调。我认为这可能是我在我的问题在这里失踪:http://stackoverflow.com/questions/20792944/appwidgetprovider-public-void-onenabled-context-context-does-not-effect-widget – Mike 2013-12-27 02:45:39

4

您不需要在服务中创建AsyncTask。该服务已经在后台线程上运行,因此您可以在服务中的doInBackground中执行任何密集型任务。你应该仍然可以在服务中调用AsyncTask,但是你不需要在这一点上使用AsyncTask。

Here是一个带有服务的小部件示例。

0

这里的基本区别在于:

线程或异步任务在后台线程执行他们的任务因此它们不会阻塞主线程,而服务执行它在主线程工作。所以如果某个服务正在执行诸如调用Web服务之类的密集型任务,它可能会阻塞主线程,直到完成。因此,对于密集型任务,服务应该在后台线程中运行它。

总结,线程(异步任务)在后台执行任务(不阻塞主线程),服务可以阻塞主线程直到完成。