Einfachste Möglichkeit, Picasso in Benachrichtigungen zu verwenden (Symbol)

7

Ich suche nach einer einfachen Möglichkeit, Picasso zu verwenden, um ein Notiz-Icon zu laden (welches eine URL auf einer entfernten Webseite ist). In einer früheren Version der App, an der ich arbeite, scheint dieser Code zu funktionieren:

%Vor%

Aber jetzt bekomme ich jedes Mal eine TimeOutException (und ich falle auf ein Standard-Icon in meinem res-Ordner zurück). Ich muss diese AsyncTask verwenden, da Picasso (/ Netzwerk) möglicherweise nicht auf dem UIhread passiert. (Obwohl ich hier den UI-Thread für 1,5 Sekunden blockiere ..).

Ich weiß, dass Picasso mit entfernten Ansichten umgehen kann, aber ich möchte keine benutzerdefinierte Ansicht für meine Benachrichtigung verwenden. Auch konnte ich keine Möglichkeit finden, das RemoteView für die NoticificationIcon zu bekommen.

Gibt es eine Möglichkeit, das Symbol meiner Benachrichtigung einfach mit Picasso zu setzen?

    
PieterAelse 12.11.2014, 13:33
quelle

5 Antworten

15

Ich beantworte die Frage selbst, weil ich einen vernünftigen Weg gefunden habe, Picasso und RemoteViews zu verwenden. Getestet und mit Picasso 2.5.2 gearbeitet:

%Vor%     
PieterAelse 12.11.2015, 11:07
quelle
6

Ich bin mir nicht sicher, warum Ihr Code nicht funktioniert, aber er kompiliert sich gut für mich, getestet auf API Level 21 und Android Studio.

Ich habe ein paar Änderungen vorgenommen, um meine Bedürfnisse zu erfüllen, z. die Zeitverzögerung wurde entfernt.

Die einzigen bemerkbaren Unterschiede sind die folgenden Ausgaben in meinem Logcat:

%Vor%

Dies ist normal basierend auf den Links: dies und this

Und mein aktualisierter Code ist:

%Vor%     
Elroy 21.02.2015 16:38
quelle
3

Ich schlage eine einfache Möglichkeit vor, ein entferntes Bild in Ihrer Benachrichtigung als großes Symbol mit Picasso zu integrieren.

%Vor%     
tryp 28.02.2017 13:48
quelle
2

Wenn Sie nicht warten möchten, bis Picasso das Bild vor dem Senden der Benachrichtigung abgerufen hat, besteht eine Lösung darin, die Benachrichtigung zweimal mit der gleichen ID zu senden , damit NotificationManager die Nachricht aktualisiert bestehende Benachrichtigung beim zweiten Senden.

Verwenden Sie in der Praxis zum ersten Mal einen Platzhalter für setLargeIcon() und das zweite Mal verwenden Sie Bitmap , das Sie von einem Picasso Target erhalten haben.

Zum Beispiel von Ihrem Activity :

%Vor%

Da Picasso auf das Internet zugreifen muss, vergessen Sie nicht, in Ihrem Manifest die richtige Berechtigung zu setzen, damit dies funktioniert:

%Vor%     
sacha 22.07.2015 22:09
quelle
0
%Vor%

, Kopieren und Einfügen, ersetzen Sie "image_url" durch die tatsächliche Bild-URL .

%Vor%     
kabir 06.06.2017 11:49
quelle