У меня есть виджет приложения, который запускает намерениеУслуги по приему обновлений.Android App Widget - какой контекст для использования
Я не уверен, какой контекст использовать для того, чтобы обновить виджет, я должен использовать один из следующих параметров:
- контекст Применение
- Контекст получил в AppWidgetProvider
- контекст IntentService
Иногда у меня возникают проблемы, инструкция обновления Widget (через RemoteViews) игнорируется.
В любое время все содержимое удаляется и не будет рисоваться снова, если я не удалю виджет и не добавлю его снова.
Я пытаюсь понять, почему возникают подобные проблемы.
виджет запускается через:
@Override
public void onUpdate(Context context, AppWidgetManager appWidgetManager,int[] appWidgetIds) {
Log.d(TAG_PROCESS, " onUpdate ");
Intent intent = new Intent(context, UpdateService.class);
intent.setData(Uri.parse(intent.toUri(Intent.URI_INTENT_SCHEME))); // embed extras so they don't get ignored
intent.setAction(AppWidgetManager.ACTION_APPWIDGET_UPDATE);
context.startService(intent);
}
Я обновляю виджет в IntentService с помощью этих методов:
/** Updates all widgets with the given remoteViews instructions */
protected static void updateAllWidgets(Context context, RemoteViews remoteView){
ComponentName thisWidget = new ComponentName(context, WidgetActivity.class);
AppWidgetManager manager = AppWidgetManager.getInstance(context);
manager.updateAppWidget(thisWidget, remoteView);
}
/** Update a given widget (id) with the given remoteViews instructions */
protected static void updateWidget(Context context, RemoteViews remoteView, int widgetId){
AppWidgetManager manager = AppWidgetManager.getInstance(context);
manager.updateAppWidget(widgetId, remoteView);
}
Может показать код? –
@ci_ Я добавил код – htafoya