使用Async Task从哪个方法更新主屏幕小部件?

时间:2013-02-06 16:06:48

标签: android android-widget android-asynctask

我让主应用程序将图像下载到移动设备上的文件夹,然后小部件服务在半小时内抓取该图像并更新小部件imageview。我想转过身来。我想在窗口小部件服务中解析图像,然后将图像保存到设备,并让主应用程序从窗口小部件中取出它,因为窗口小部件正在更新,也是用户看到此应用程序的第一件事。

目前我的服务只获取文件并将其放入视图中。我想在服务中解析xml,但我不断获得网络线程异常。我在哪里运行此异步任务?在onStart(),onResume()或?

onStart() / onResume / elsewhere? {
//other code...
new MyAsyncTask.execute();

}

public MyAsyncTask extends AsyncTask<>{

//parse the url

}

感谢您为我解决此问题。

1 个答案:

答案 0 :(得分:0)

首先将一个Action添加到appwidget接收器

<receiver android:name=".YourWidget" android:label="My Widget">
    <intent-filter>
                <action android:name="android.appwidget.action.APPWIDGET_UPDATE" />
                <action android:name="your.package.name.MANUEL_UPDATE" />
    </intent-filter>
</receiver>

然后你发送一个会触发接收器的广播:

Intent intent = new Intent();
intent.setAction("your.package.name.MANUEL_UPDATE");
sendBroadcast(intent);

在appwidets接收器中,您可以完成新图像所需的工作! 希望有所帮助。