2016-03-24 20 views
0

Ich entwickle kleine Anwendung Widget und habe ein Problem mit der Aktualisierung von Remote-Ansichten. Wenn Widget durch Systemaufruf Aktualisierung ist alles in Ordnung, aber wenn ich Update-Widget von meinem Service durch diesen Code versuchen:Android-Anwendung Widget hat seltsame Ansicht Glitch während der Aktualisierung

AppWidgetManager widgetManager = AppWidgetManager.getInstance(this); 
ComponentName widgetComponent = new ComponentName(this, NBRBAppWidget.class); 
int[] widgetIds = widgetManager.getAppWidgetIds(widgetComponent); 
Intent update = new Intent(); 
update.putExtra(AppWidgetManager.EXTRA_APPWIDGET_IDS, widgetIds); 
update.setAction(AppWidgetManager.ACTION_APPWIDGET_UPDATE); 
sendBroadcast(update); 

meiner Widget-Ansicht Glitches. Beispiel für Glitch ist auf dem Video unten

Video of RemoteView glitches

ich, dass Update-Ansichten Verfahren 7-20ms

nahm geprüft Wenn jemand etwas davon hat, warum dies geschieht, bitte geben Sie mir zu wissen.

Antwort

0

Um Glitch von Widget vermeide ich Remote nur entfernen von ACTION_APPWIDGET_UPDATE Broadcast senden und rufen, anstatt sie, wie folgt aus:

AppWidgetManager widgetManager = AppWidgetManager.getInstance(this); 
ComponentName widgetComponent = new ComponentName(this, NBRBAppWidget.class); 
int[] widgetIds = widgetManager.getAppWidgetIds(widgetComponent); 
for (int i = 0; i < widgetIds.length; i++) { 
    NBRBAppWidget.updateWidget(this, widgetManager, widgetIds[i]); 
} 

NBRBAppWidget.updateWidget ist Methode, die Anrufe zu Remote-Ansichten tun