2015-10-06 8 views
7

Ich habe auf einigen Geräten seltsames Verhalten festgestellt, wenn ich eine neue Instanz von appwidget auf dem Startbildschirm hinzufüge.AppWidget: Instanz wird nicht angezeigt, nachdem die Konfigurationsaktivität auf einigen Geräten beendet wurde

Ich habe AppWidget Anwendung mit Konfigurationsaktivität. Wie es im Tutorial update von appwidget gesagt wurde, muss ich alleine machen.

public static void updateWidgetAndSendIntent (Activity activity, int mAppWidgetId, boolean isUpdate) { 
    updateWidgets(activity); 
    if (!isUpdate) { 
     Intent resultIntent = new Intent(); 
     resultIntent.putExtra(AppWidgetManager.EXTRA_APPWIDGET_ID, mAppWidgetId); 
     activity.setResult(Activity.RESULT_OK, resultIntent); 
     activity.finish(); 
    } 
} 

    public static void updateWidgets(Context context) { 
    new ManagerUpdateWidget(context).updateAllWidgetInstances(); 
} 

ManagerUpdateWidget.java

public void updateAllWidgetInstances() { 

    Bitmap widget = getCustomView(context); 

    for (int widgetId : appWidgetIds) { 
     updateCurrentInstance(widgetId, widget); 
    } 
} 

Tatsache ist, dass auf dem Samsung Galaxy Note 2 (GT-N7100) mit Android 4.4.2 alles in Ordnung ist, aber auf dem Samsung Galaxy Note 3 (SM-N900) mit Android 5.0 habe ich "Phantom" Appwidget, nicht wirklich appawidget auf dem Startbildschirm, aber die "Phantom" diejenigen, wenn Sie Appwidget auf dem Bildschirm nicht sehen können, aber in Ihrer App Appwidget existiert mit ID und regelmäßige Updates. Ich habe meine App auf genymotion Emulatoren (Android 4.3 und 5.0) getestet, aber alles war auch in Ordnung.

Bitte, schlagen Sie mir vor, wie Sie diesen seltsamen Fehler beheben können.

+0

Können Sie klarstellen, was mit "Phantom" appwidget gemeint ist? –

+0

[This] (http://stackoverflow.com/a/8866791/4600792) Antwort könnte Ihnen helfen. –

+0

das ist ein weiterer Fehler, nicht meiner. Ich sehe mein Widget in "Widget-Liste" und kann die Konfigurationsaktivität ausführen, aber nachdem die Konfiguration abgeschlossen ist, sehe ich keine neue Instanz auf dem Startbildschirm. In meinem Fall ist es nur auf Note 3 passiert, auf Note 2 ist das Laufen in Ordnung –

Antwort

0

Der Umgang mit "Phantom" Widgets ist ein Albtraum. Können Sie alle Instanzen mit updateAppWidget (ComponentName provider, RemoteViews views) aktualisieren?
Gemäß der Dokumentation wird diese Methode festlegen, dass die RemoteViews für alle AppWidget-Instanzen für den bereitgestellten AppWidget-Provider verwendet werden.

AppWidgetManager manager = AppWidgetManager.getInstance(context); 
ComponentName component = new ComponentName(context, MyAppWidgetProvider.class); 
manager.updateAppWidget(component, remoteViews); 
+0

innerhalb der updateCurrentInstance-Methode, die ich gemacht habe, dass du vorgeschlagen hast ... Es hat mir nicht geholfen –

Verwandte Themen