Frage

Ich arbeite an einem Widget, das die angezeigten Daten ändert, wenn ein Benutzer darauf aufnimmt. Dies wäre normalerweise einfach zu handhaben, aber mein App -Widget -Anbieter bearbeitet mehrere Widget -Instanzen mit unterschiedlichen Datensätzen. Wenn ein Benutzer auf das Widget tippt, wird ein anhängiger Start auf die Methode "ChangeAta () aufgerufen. In der Absicht, die gestartet wird, speichere ich die Widget -ID, so dass geändert () weiß (), welchen Datensatz verwendet werden soll. Zuerst habe ich Widget -IDs in den Extras der Intent gespeichert, aber ich fand heraus, dass es einen Fehler gibt, wie Android -Widgets Widget -Intent -Extras behandelt haben. Jetzt versuche ich jetzt, das Widget zu speichern, indem ich eine URL mit der SetData () -Methode (formatiert) übergeben habe (formatiert Wie Inhalt: WidgetId dh Inhalt: 24 usw.).

So setze ich die Daten für den anhängigen Anhänger fest:

Intent changeData = new Intent("com.tonycosentini.mintdroid.CHANGE_DATA");
changeData.setData(Uri.parse("content:" + currentWidgetId));
PendingIntent changeDataPendingIntent = PendingIntent.getBroadcast(this, 0, changeData, 0);

Sobald ich jedoch versuche, dies zu testen, wird die OnRecieve () -Methode, die normalerweise aufgerufen wird, wenn ein Widget abgebaut wird. Gibt es etwas, das ich in meiner Android -Manifestdatei für diese Arbeit ordnungsgemäß einrichten muss, oder gibt es etwas, das ich völlig falsch mache?

Vielen Dank, dass Sie sich die Zeit genommen haben, dies zu lesen, Tony

War es hilfreich?

Lösung

Sie müssen übereinstimmen

<data android:scheme="content" />

oder

IntentFilter filter = new IntentFilter("com.tonycosentini.mintdroid.CHANGE_DATA");
filter.addDataScheme("content");

in Ihrem Absichtsfilter.

Hängt davon ab, ob Sie den Filter in XML oder Java deklarieren.

http://developer.android.com/guide/topics/intents/intent-filters.html

Ein Absichtsobjekt, das einen URI enthält, aber kein Datentyp (und ein Typ aus dem URI nicht abgeleitet werden kann), besteht den Test nur, wenn sein URI mit einem URI im Filter übereinstimmt und der Filter ebenfalls keinen Typ angibt. Dies ist nur für URIs wie Mailto der Fall: und Tel: Das bezieht sich nicht auf tatsächliche Daten.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top