我正在为我的应用程序开发Android AppWidget。要更新我的appwidget,我需要从网络下载数据。但是当我尝试在onUpdate方法中执行此操作时,我的appWidget被Android系统杀死。我了解到在接收器中无法完成耗时的操作,因此我从onUpdate方法启动了一个服务并从中启动了一个线程。但问题仍然存在。 谁能告诉我如何在Appwidget中进行网络操作?
答案 0 :(得分:3)
将下载工作委派给服务,可能是IntentService
,可能是WakefulIntentService
,具体取决于设备是否可能在工作期间入睡。
您的AppWidgetProvider
只会在startService()
上致电IntentService
。
您的IntentService's
onHandleIntent()
方法将执行您目前在onUpdate()
中所做的工作,通过静态AppWidgetManager
方法获取自己的getInstance()
。但是,由于onHandleIntent()
在后台线程上执行,因此您可以根据需要花费尽可能多的时间。完成所有未完成的工作请求后,IntentService
也会自动关闭。