我正在为我的应用程序开发一个android appwidget。为了更新我的appwidget,我需要从网络下载数据。但当我尝试在onupdate方法中这样做时,我的appwidget被android系统杀死了。我了解到在接收器中不能执行耗时的操作,所以我从onupdate方法启动了一个服务,并从中启动了一个线程。但问题依然存在。
有人能告诉我如何在appwidget中进行网络操作吗?

最佳答案

将下载工作委托给一个服务,可能是IntentService,也可能是WakefulIntentService,这取决于是否存在设备在工作过程中可能会睡着的风险。
您的AppWidgetProvider只需在您的startService()上调用IntentService
您的IntentService'sonHandleIntent()方法将完成您目前在onUpdate()中的工作,通过静态AppWidgetManager方法获得自己的getInstance()。但是,由于onHandleIntent()是在后台线程上执行的,因此您可以花费所需的时间。完成所有未完成的工作请求后,IntentService也将自动关闭。

关于android - Android:Appwidget中的网络操作,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/3540287/

10-09 04:47