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:
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
:
LLMNotificationActivity
ist wie üblich definiert:
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?
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.
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.
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% Alles was Sie tun müssen, ist setContentIntent
zu Ihrem Notification.Builder hinzuzufügen:
Wenn Sie nun auf Ihre Benachrichtigung klicken, wird YourLanchedActivity gestartet.
Tags und Links java android android-activity notifications remoteview