I have an AppWidget with ListView inside it. I want to update ListView after add/remove/update item(s) from Activity class. I have tried these before:
1)
Intent intent = new Intent(this, MyWidgetProvider.class);
intent.setAction("android.appwidget.action.APPWIDGET_UPDATE");
int[] ids = { R.xml.widget_provider };
intent.putExtra(AppWidgetManager.EXTRA_APPWIDGET_IDS, ids);
sendBroadcast(intent);
2)
AppWidgetManager appWidgetManager = AppWidgetManager.getInstance(this);
ComponentName thisWidget = new ComponentName(this, MyWidgetProvider.class);
int[] appWidgetIds = appWidgetManager.getAppWidgetIds(thisWidget);
appWidgetManager.notifyAppWidgetViewDataChanged(appWidgetIds, R.id.list);
3)
int widgetIDs[] = AppWidgetManager.getInstance(getApplication()).getAppWidgetIds(new ComponentName(getApplication(), MyWidgetProvider.class));
for (int id : widgetIDs) {
AppWidgetManager.getInstance(getApplication()).notifyAppWidgetViewDataChanged(id, R.id.list);
}
and I have no success. Sometimes work, sometimes didn't.
Now my Q is: Is there a way 100% guaranteed to update list view inside an appWidget?