3

我正在为我的应用程序开发一个 Android AppWidget。为了更新我的 appwidget,我需要从网络下载数据。但是当我尝试在 onUpdate 方法中执行此操作时,我的 appWidget 被 Android 系统杀死了。我了解到无法在接收器中完成耗时的操作,因此我从 onUpdate 方法启动了一个服务并从中启动了一个线程。但问题仍然存在。谁能告诉我如何在 Appwidget 中进行网络操作?

4

1 回答 1

3

将下载工作委托给一个服务,可能是一个IntentService,可能是一个,这WakefulIntentService取决于设备在工作本身期间是否存在睡眠的风险。

AppWidgetProvider只会打电话startService()给你的IntentService.

您的IntentService's onHandleIntent()方法将完成您目前在 中所做的工作,通过静态方法onUpdate()获得它自己的工作。但是,由于是在后台线程上执行的,因此您可以根据需要花费尽可能多的时间。一旦完成所有未完成的工作请求,它也会自动关闭。AppWidgetManagergetInstance()onHandleIntent()IntentService

于 2010-08-22T05:30:16.980 回答