Android - AppWidgetProvider обновляет контент после настройки активности - PullRequest
0 голосов
/ 05 марта 2012

У меня запущено действие по настройке с кнопки appWidget. Если некоторые параметры для приложения изменяются в рамках действия конфигурации, после их сохранения я должен закрыть текущее действие (finish ()) и обновить содержимое текстовых представлений appWidjet. Есть ли шанс, что я могу принудительно обновить / обновить? Спасибо!

Ответы [ 2 ]

1 голос
/ 05 марта 2012

вы использовали ожидающее намерение начать действие с вашего AppsWidget, и в вашей деятельности, когда вы выполняете какое-либо действие, например нажатие кнопки, вы можете изменить и обновить appswidget, для которого вам следует использовать следующий код:

 RemoteViews views = new RemoteViews(getPackageName(), R.layout.appswidget);
 views.setTextViewText(R.id.txtInfo, "Tiwari");
 ComponentName thisWidget = new ComponentName(v.getContext(), WidgetProvider.class);
 AppWidgetManager manager = AppWidgetManager.getInstance(InfoActivity.this);
 manager.updateAppWidget(thisWidget, views);

здесь представление RemoteViews, которое будет обновлено здесь, и с помощью manager.updateAppWidget () вызывается onUpdate () из AppWidgetProvider и обновляется в appWidget.

вы получите здесь хорошее демо.

0 голосов
/ 05 февраля 2013

Я предлагаю вам отправить широковещательное сообщение на виджет из действия конфигурации.То же широковещательное сообщение, которое вы отправите ему в противном случае, когда захотите обновить его состояние.

Intent refreshIntent = new Intent(this, WidgetProvider.class);
refreshIntent.setAction(WidgetProvider.ACTION_RELOAD);
refreshIntent.putExtra(WidgetProvider.EXTRA_WIDGET_ID, widgetId); 
sendBroadcast(refreshIntent);

На WidgetProvider вы просто обрабатываете новое полученное сообщение

    @Override
    public void onReceive(Context context, Intent intent) {
        super.onReceive(context, intent);
            // do your stuff here on ACTION_RELOAD
    }
...