我有一个成功运行的小部件。现在,当手机重新启动时,小部件会丢失所有数据,并停留在主屏幕上。由于我无法在手机重新启动时从广播接收器更新小部件,因此我创建了一条通知,导向小部件的配置活动。在用户再次设置配置并离开配置活动后,什么都不起作用;空闲的小部件仍然保留在那里(用户必须删除小部件并再次创建小部件)。我认为我没有正确地接收小部件ID或者我在广播接收器中做错了,可能应该将所有代码移动到小部件方法中的onEnable? 我该如何正确刷新小部件?请记住,所有小部件更新都是从服务中完成的。
另外,我在广播接收器中对boot_completed操作有以下代码:
另外,我在广播接收器中对boot_completed操作有以下代码:
public void onReceive(final Context context, Intent intent) {
String info = context.getResources().getString(R.string.restart_setting);
int[] allids = AppWidgetManager.getInstance(context).getAppWidgetIds(new ComponentName(context, MyWidgetProvider.class));
for(int appWidgetId:allids){
NotificationManager mnotifyManager = (NotificationManager)context.getSystemService(Context.NOTIFICATION_SERVICE);
Notification notify = new Notification(R.drawable.icon, "Weather Update", System.currentTimeMillis());
notify.defaults = Notification.DEFAULT_SOUND;
notify.defaults = Notification.DEFAULT_VIBRATE;
Intent Settings = new Intent(context, WidgetConfigure.class);
Settings.putExtra(AppWidgetManager.EXTRA_APPWIDGET_ID, appWidgetId);
PendingIntent pending = PendingIntent.getActivity(context, 0, weatherSettings, PendingIntent.FLAG_ONE_SHOT);
notify.setLatestEventInfo(context, "Weather Update", info, pending);
notify.flags = Notification.FLAG_AUTO_CANCEL;
notify.defaults = Notification.DEFAULT_ALL;
mnotifyManager.notify(WEATHER_NOTIFICATION_ID , notify);
}
}