我正在为我的应用程序开发一个android appwidget。为了更新我的appwidget,我需要从网络下载数据。但当我尝试在onupdate方法中这样做时,我的appwidget被android系统杀死了。我了解到在接收器中不能执行耗时的操作,所以我从onupdate方法启动了一个服务,并从中启动了一个线程。但问题依然存在。
有人能告诉我如何在appwidget中进行网络操作吗?
最佳答案
将下载工作委托给一个服务,可能是IntentService
,也可能是WakefulIntentService
,这取决于是否存在设备在工作过程中可能会睡着的风险。
您的AppWidgetProvider
只需在您的startService()
上调用IntentService
。
您的IntentService's
onHandleIntent()
方法将完成您目前在onUpdate()
中的工作,通过静态AppWidgetManager
方法获得自己的getInstance()
。但是,由于onHandleIntent()
是在后台线程上执行的,因此您可以花费所需的时间。完成所有未完成的工作请求后,IntentService
也将自动关闭。
关于android - Android:Appwidget中的网络操作,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/3540287/