Notification Intent startet nicht

  • Antworten:15
  • OffenNicht stickyBentwortet
  • Forum-Beiträge: 45

27.04.2015, 20:20:09 via Website

Hallo Leute,

ich habe zu meiner Notification ein Intent hinzugefügt:

NotificationManager notificationManager = (NotificationManager) MainActivity.instance.getSystemService(Context.NOTIFICATION_SERVICE);
                    Intent downloadIntent = new Intent(MainActivity.instance.getApplicationContext(), DownloadActivity.class);
                    downloadIntent.putExtra("URL", url.toString());
                    PendingIntent pendingIntent = PendingIntent.getActivity(MainActivity.instance.getApplicationContext(), 0, downloadIntent, 0);

                    NotificationCompat.Builder main_builder =
                            new NotificationCompat.Builder(MainActivity.instance)
                                    .setSmallIcon(R.drawable.ic_launcher)
                                    .setContentTitle("Test!")
                                    .setContentText("Klicke zum Downloaden")
                                    .setContentIntent(pendingIntent)
                                    .setAutoCancel(true);

                    notificationManager.notify(1, main_builder.build());

Und dann hier die DownloadActivity Klasse:

public class DownloadActivity extends Activity{

@Override
public void onCreate(final Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);

    Bundle extras = getIntent().getExtras();
    final String url = extras.getString("URL");

    System.out.println(url);

    Toast.makeText(MainActivity.instance, "Download gestartet!", Toast.LENGTH_LONG);
}

}

Aber wenn ich nun die Notification anklicke, passiert nichts.. Habe ich irgendwas vergessen?

LG
Daniel

Antworten
Pascal P.
  • Mod
  • Blogger
  • Forum-Beiträge: 10.182

29.04.2015, 20:32:19 via Website

Hallo Daniel,
bitte nicht pushen
Danke :)


Warum nicmmst du einen verschiedenen Context?
Ich würde immer mainActivity.instance nehmen und nich den Application Context (macht aber kein unterschied, ist eine Stilfrage)

Am besten du versuchst mal das PendingIntent mit Flag:

PendingIntent pendingIntent = PendingIntent.getActivity(context, 0, intent, Intent.FLAG_ACTIVITY_NEW_TASK);

Gibt denn LogCat irgendwas her?
Activity in der Manifest angelegt?

— geändert am 29.04.2015, 20:33:24

LG Pascal //It's not a bug, it's a feature. :) ;)

Antworten
  • Forum-Beiträge: 45

29.04.2015, 20:54:49 via Website

Achso, tut mir leid.

Ich bin auch so dumm. Ich glaube du hast mein Problem schon gefunden. Habe die Activity in der Manifest nicht angelegt...
Vielen Dank. Ich melde mich dann, obs funktioniert hat.

Antworten
  • Forum-Beiträge: 45

06.05.2015, 17:21:26 via Website

Danke. Funktioniert.
Nur habe ich noch ein Problem. Wenn ich mit PutExtra etwas festlege und dies später nochmal mit einem anderen Wert machen, aber unter dem gleichen Namen.
Also PutExtra("Name", "Wert");
Dann bleibt der alte Wert. Wie kann ich das überschreiben?

Antworten
Pascal P.
  • Mod
  • Blogger
  • Forum-Beiträge: 10.182

06.05.2015, 19:03:40 via Website

Zeig mal den Beispielcode.
Warum willst du das denn überschreiben?
Macht doch innerhalb des Intents vor dem Abschicken doch garkeinen Sin oder?!

Und bei getIntent sollte man das auch nicht überschreiben dann lieber ein neues intent erzeugen und andere Werte setzen

LG Pascal //It's not a bug, it's a feature. :) ;)

Antworten
  • Forum-Beiträge: 45

06.05.2015, 19:06:32 via Website

Ich erstelle das Intent neu. Nur komischerweise war der Wert immer der gleiche:

 Intent downloadIntent = new Intent(MainActivity.instance, DownloadActivity.class);
                        downloadIntent.putExtra("FILE", filename.toString());

Wenn ich dann FILE auslese, ist es immer das gleiche.
Habe es nun anders gelöst ohne PutExtra.

Antworten
Pascal P.
  • Mod
  • Blogger
  • Forum-Beiträge: 10.182

06.05.2015, 19:17:52 via Website

Wenn du es gelöst hast dann ist gut :)

Aber wenn das liegt dann nicht am übergeben an das Intent sondern am filename.toString().
Denn wenn das Extra "File" vorher nicht gesetzt war(geht ja nicht anders da neues Intent), muss das immer überschireben werden.

Hast du in deiner Download Activity auch getIntent().getStringExtra("FILE"); gemacht?

LG Pascal //It's not a bug, it's a feature. :) ;)

Antworten
  • Forum-Beiträge: 45

06.05.2015, 19:28:22 via Website

Ja, habe ich.
Ich lasse mir filename.toString() ausgeben und da ist es richtig.

Antworten
Pascal P.
  • Mod
  • Blogger
  • Forum-Beiträge: 10.182

06.05.2015, 19:30:00 via Website

Hmm komisch aber ohne den Code zu Debuggen kann ich dir nicht sagen woran es gelegen hat.

LG

Da du jetzt eine Lösung hast, kannst du den Thread ja auf Beantwortet setzen :)
Danke

— geändert am 06.05.2015, 19:30:30

LG Pascal //It's not a bug, it's a feature. :) ;)

Antworten
  • Forum-Beiträge: 45

07.05.2015, 17:12:29 via Website

Nein, braucht man dafür Permissions?

— geändert am 07.05.2015, 17:12:41

Antworten
Pascal P.
  • Mod
  • Blogger
  • Forum-Beiträge: 10.182

07.05.2015, 18:04:21 via App

Wäre mir jetzt neu wenn man permissions bräuchte.. an welche denkst du denn ?

LG Pascal //It's not a bug, it's a feature. :) ;)

Antworten
  • Forum-Beiträge: 19

07.05.2015, 23:02:36 via Website

Ha stimmt habt ihr recht sry :D

— geändert am 07.05.2015, 23:21:24

Antworten

Empfohlene Artikel