Android:Appwidget中的网络操作

时间:2010-08-22 05:23:39

标签: android networking operations android-appwidget

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

1 个答案:

答案 0 :(得分:3)

将下载工作委派给服务,可能是IntentService,可能是WakefulIntentService,具体取决于设备是否可能在工作期间入睡。

您的AppWidgetProvider只会在startService()上致电IntentService

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