Notification + Activity update

  • Antworten:9
Markus Gu
  • Forum-Beiträge: 2.644

28.10.2009, 14:48:19 via Website

hallo

hab ne frage zu notifications

ich habe eine app, die läuft gerade, dann wird über einen receiver eine notification ausgelöst, die bei klick die app öffnen soll und dort einen wert ändert.

nun ist die app aber offen und durch die notification wird sich nicht gestoppt, somit gibt es auch kein onresume. wie kann ich dann den wert austauschen???

bzw wie kann ich kapieren, dass jetzt die app neu zu starten ist?

swordiApps Blog - Website

Antworten
Mac Systems
  • Forum-Beiträge: 1.727

28.10.2009, 15:35:09 via Website

Mir wäre unbekannt das eine Anwendung neu gestartet werden kann, so was verwaltet Android allein ohne das hier Einfluss genommen werden kann.
Allerdings verstehe Ich nicht genau wieso hier onResume wichtig wäre ? Erkläre doch mal genauer was du machen willst ....

Windmate HD, See you @ IO 14 , Worked on Wundercar, Glass V3, LG G Watch, Moto 360, Android TV

Antworten
Markus Gu
  • Forum-Beiträge: 2.644

28.10.2009, 16:49:06 via Website

naja ich habe eine anwendung A mit einem textfeld. da steht text "xxxx" drin

dann kommt eine notification. diese notification startet beim klicken anwendung A und dem Intent wird ein String "yyyy" mitgegeben.

nun soll der text im textfeld "xxxx" durch das "yyyy" ausgetauscht werden.

woher weiß ich, dass er nun durch klicken auf die notification in app A gekommen ist, obwohl sie vorher schon öffen war.

wenn ich die app A vorher mit zurück "beende" geht es ja, weil sie dann durch onStop pausiert wird und dann mit onResume() wieder gestartet

verstehst du?

swordiApps Blog - Website

Antworten
Gelöschter Account
  • Forum-Beiträge: 5.136

29.10.2009, 10:07:13 via Website

Hallo Markus,

Du startest doch beim klicken auf Deine Notification die Activity A mit Hilfe eines "Pending Intents"

Diesem gibst Du als Parameter einfach den "FLAG_UPDATE_CURRENT" mit. Damit wird der zu startende Intent, wenn er bereits existiert nicht neu gestartet, aber seine Extra Data mit denen des quasi neuen Intents ausgetauscht.

Nachzulesen: http://developer.android.com/intl/de/reference/android/app/PendingIntent.html#FLAG_UPDATE_CURRENT

Ich hoffe das es das war was Du suchst!

lg
Voss

lg Voss

Antworten
Markus Gu
  • Forum-Beiträge: 2.644

29.10.2009, 11:06:27 via Website

Hallo Jörg, danke schonmal, aber das geht nicht

1Flag for use with getActivity(Context, int, Intent, int), getBroadcast(Context, int, Intent, int), and getService(Context, int, Intent, int):

ist nur für diese 3 methoden gedacht

edit: sorry völliger schwachsinnspost. muss ich nochmal probieren

— geändert am 29.10.2009, 11:10:21

swordiApps Blog - Website

Antworten
Markus Gu
  • Forum-Beiträge: 2.644

29.10.2009, 11:24:05 via Website

ok die lösung war ganz einfach

man kann in der activity die methode onNewIntent überschreiben. wenn ich auf die notification klicke hab ich ja ein neues intent. somit wird diese dann ausgeführt und ich kann machen was ich will :)

danke

swordiApps Blog - Website

Antworten
Gelöschter Account
  • Forum-Beiträge: 5.136

29.10.2009, 12:46:38 via Website

Du hast nicht zwingend ein neues Intent ..

Die Methode getActivity(Context context, int requestCode, Intent intent, int flags) hat einen Return ... dazu heißt es:

1Returns an existing or new PendingIntent matching the given parameters

lg
Voss

— geändert am 29.10.2009, 12:48:05

lg Voss

Antworten
Markus Gu
  • Forum-Beiträge: 2.644

29.10.2009, 15:35:13 via Website

muss es noch ein wenig testen, aber bis jetzt funktioniert es nach meiner methode

swordiApps Blog - Website

Antworten
Mac Systems
  • Forum-Beiträge: 1.727

03.11.2009, 09:25:29 via Website

Du kannst doch Parameter übergeben im Intent (Bundle), wie wäre es dort einen Prefix zu setzen ?

Windmate HD, See you @ IO 14 , Worked on Wundercar, Glass V3, LG G Watch, Moto 360, Android TV

Antworten
Markus Gu
  • Forum-Beiträge: 2.644

03.11.2009, 09:28:12 via Website

problem hat sich schon gelöst

funktioniert einwandfrei

swordiApps Blog - Website

Antworten