Android-Benachrichtigung mit RemoteViews - Aktivität mit RemoteViews-Layout verknüpft

8

Ich habe untersucht, wie man benutzerdefinierte Layout-Benachrichtigungen mit RemoteView erstellt.

Bisher kann ich eine Benachrichtigung mit contentView und bigContentView erstellen, die auf ein RemoteView mit einem benutzerdefinierten Layout-XML zeigt. Was jedoch nicht passiert, ist, dass Activity (mit benutzerdefiniertem Layout verknüpft) gestartet wird, wenn diese RemoteView erstellt wird.

Ich habe es überprüft und in meinem Layout-XML scheint es korrekt zu sein Activity Klassenname:

%Vor%

In der Manifestdatei wird direkt nach der Hauptaktivität der Hauptanwendung eine Benachrichtigungsaktivität hinzugefügt:

%Vor%

Ich würde erwarten, wenn die Benachrichtigung RemoteView für ihren Inhalt verwendet, dass diese RemoteView eine Aktivität startet, die an ihre Layout-Definition angehängt ist. Es scheint jedoch nicht.

So erstelle ich eine Benachrichtigung in der Hauptanwendung Activity :

%Vor% Die Aktivitätsklasse

LLMNotificationActivity ist wie üblich definiert:

%Vor%

Kann jemand auf mich hinweisen, was ich vermisse oder was ich missverstanden habe, was RemoteView tun kann? Mein Verständnis ist, dass RemoteView , einmal erstellt, die mit seinem Layout verknüpfte Aktivität aufrufen sollte. Oder - gibt es eine API, die ich übersehen habe und die Absicht von RemoteView explizit festlegen kann?

Was ich bisher gefunden habe, ist nur den Inhalt Intent zu setzen, der im Grunde nur einen Activity startet, sobald der Benutzer die Benachrichtigung berührt. Ich suche nach Berührungen einiger Benutzeroberflächenelemente in der Benachrichtigung über benutzerdefiniertes Layout, um Activity unabhängig davon, wo der Benutzer auf die Benachrichtigungsoberfläche klickt, nicht zu starten.

Wenn ich zum Beispiel 3 Symbole (d. h. ImageView ) in einem RemoteView habe, das von der Benachrichtigung verwendet wird, würde ich gerne in der Lage sein, jedes einzelne davon zu berühren. Ich kann mir nicht vorstellen, dass das nicht möglich wäre, als ob es nicht wäre, was ist der Sinn von RemoteView in der Benachrichtigung?

    
Sinisa 23.03.2014, 00:56
quelle

2 Antworten

8

Sie müssen die Aktivität doody setOnClickPendingIntent zuordnen, um die Aktivität von der Remote-Ansicht aus zu starten, wie unten beschrieben ... Sie können jede Layout-ID in RemoteView zum Klicken setzen.

%Vor%

stelle +id/layout_id für die RelativeLayout Verwendung bereit.

Wenn Sie die Aktivität starten müssen, wenn ein Benutzer auf die Benachrichtigung klickt, müssen Sie PendingIntent als ... verwenden.

%Vor%

Für 3 Buttons musst du eine benutzerdefinierte RemoteView erstellen und PendingIntent verwenden. etwas wie unten ...

Hier ist die benutzerdefinierte Fernansicht, die ich für eine meiner Media Player-App verwende. Es hat drei Schaltflächen zum Handler klicken.

%Vor%     
Libin 23.03.2014, 01:20
quelle
0

Alles was Sie tun müssen, ist setContentIntent zu Ihrem Notification.Builder hinzuzufügen:

%Vor%

Wenn Sie nun auf Ihre Benachrichtigung klicken, wird YourLanchedActivity gestartet.

    
Igor Ganapolsky 27.04.2016 15:39
quelle