Notification Intent startet nicht

  • Antworten:15
  • Bentwortet
Gelöschter Account
  • 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
Gelöschter Account
  • Forum-Beiträge: 45

29.04.2015, 19:10:01 via Website

Hat keiner eine Idee?

Antworten
Pascal P.
  • Admin
  • Forum-Beiträge: 11.286

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
Gelöschter Account
  • 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
Gelöschter Account
  • 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.
  • Admin
  • Forum-Beiträge: 11.286

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
Gelöschter Account
  • 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.
  • Admin
  • Forum-Beiträge: 11.286

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
Gelöschter Account
  • 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.
  • Admin
  • Forum-Beiträge: 11.286

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
Gelöschter Account
  • Forum-Beiträge: 45

06.05.2015, 19:38:49 via Website

Erledigt. Danke für die Hilfe.

Antworten
Timo Schuck
  • Forum-Beiträge: 19

07.05.2015, 17:02:10 via Website

Hast du die Permissions in der Manifest beachtet?

Antworten
Gelöschter Account
  • 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.
  • Admin
  • Forum-Beiträge: 11.286

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
Timo Schuck
  • 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
Timo Schuck
  • Forum-Beiträge: 19

07.05.2015, 23:21:44 via Website

Habt ihr Apps im Playstore?

Antworten