Частично UpdateAppWidget на RemoteViews не работает
В RemoteViews
для AppWidget
у меня есть AdapterViewFlipper
который должен перевернуться, когда пользователь нажимает кнопку в AppWidget
, Согласно официальной документации, это можно сделать, позвонив в showNext на RemoteViews
, AppWdiget
затем следует обновить с помощью частично UpdateAppWidget, который даже имеет showNext()
функционировать в качестве примера в документации. Я пытался реализовать это, и, скорее всего, я делаю глупую ошибку, которую, похоже, не могу понять.
public class WidgetProvider extends AppWidgetProvider {
public static final String NEXT = "next";
@Override
public void onUpdate(Context context, AppWidgetManager appWidgetManager, int[] appWidgetIds) {
for (int appWidgetId : appWidgetIds) {
RemoteViews views = new RemoteViews(context.getPackageName(), R.layout.widget_layout);
Intent nextIntent = new Intent(context, WidgetProvider.class);
nextIntent.setAction(NEXT);
views.setOnClickPendingIntent(R.id.next_button,
PendingIntent.getBroadcast(context, appWidgetId, nextIntent,
PendingIntent.FLAG_UPDATE_CURRENT));
views.setRemoteAdapter(R.id.view_flipper, new Intent(context,
WidgetRemoteViewService.class));
appWidgetManager.updateAppWidget(appWidgetId, views);
}
super.onUpdate(context, appWidgetManager, appWidgetIds);
}
@Override
public void onReceive(Context context, Intent intent) {
if(intent.getAction().equals(NEXT)) {
RemoteViews remoteViews = new RemoteViews(context.getPackageName(),
R.layout.widget_layout);
remoteViews.showNext(R.id.view_flipper);
AppWidgetManager.getInstance(context).partiallyUpdateAppWidget(
AppWidgetManager.getInstance(context).getAppWidgetIds(
new ComponentName(context, WidgetProvider.class)),
remoteViews);
}
super.onReceive(context, intent);
}
}
При замене partiallyUpdateAppWidget
с updateAppWidget
следующая кнопка работает, пока ориентация не изменится или телефон не перейдет в спящий режим, что вызывает перерисовку последнего сохраненного RemoteViews
, Это заставляет меня поверить, что ошибка, которую я совершаю, связана с частичным обновлением, но я не могу понять, что я делаю неправильно.
1 ответ
На каком уровне API вы тестируете?
Может быть проблема с withpartiallyUpdateAppWidget
связан с этим открытым вопросом. http://issuetracker.google.com/issues/37136552