Jetzt kostenlos registrieren. Mitglieder surfen ohne Werbung auf Android-Hilfe.de!
Zurück   Android-Hilfe.de > Android Developer > Android App Entwicklung

Probleme mit Notification

Das Thema "Probleme mit Notification" befindet sich unter Android App Entwicklung auf Android-Hilfe.de.


Antwort

 

Themen-Optionen Ansicht
Alt 19.07.2011, 11:52   #1 (permalink)
Neuer Benutzer

Registriert seit: 20.06.2011
Beiträge: 15
Abgegebene Danke: 3
Erhielt 0 Danke für 0 Beiträge
Standard Probleme mit Notification

Hallo,
meine erste App ist so gut wie fertig, nun tauchen aber noch ein paar Probleme auf, mit denen ich nicht gerechnet habe. Wenn meine App einmal gestartet wurde über die App-Liste, läuft in der Hauptaktivität ein Timer, der sich Daten vom Server holt. Wenn neue Daten vorliegen, soll entweder eine Benachrichtigung erscheinen (wenn die entsprechende App / Hauptaktivität nicht im Vordergrund ist) oder eine ListView aktualisiert werden (wenn sich die Hauptaktivität im Vordergrund befindet). Nun habe ich mich erst einmal an dem Basis-Beispiel für Notifications orientiert:

Code:
    String ns = Context.NOTIFICATION_SERVICE;
    NotificationManager notificationManager = (NotificationManager) getSystemService(ns);
  
    int icon = R.drawable.icon;
    
    CharSequence tickerText = "FskCheck";
    long when = System.currentTimeMillis();

    Notification notification = new Notification(icon, tickerText, when);
    notification.defaults |= Notification.FLAG_AUTO_CANCEL | Notification.DEFAULT_SOUND;
    //notification.defaults |= Notification.DEFAULT_LIGHTS;

    Context context = getApplicationContext();
    CharSequence contentTitle = "Info";
    CharSequence contentText = "Tu was!";
    
    Intent notificationIntent = new Intent(this, MyActivity.class);
    PendingIntent contentIntent = PendingIntent.getActivity(this, 0, notificationIntent, Intent.FLAG_FROM_BACKGROUND);

    notification.setLatestEventInfo(context, contentTitle, contentText, contentIntent);
  
    notificationManager.notify(NOTIFY_ID, notification);
1. Wenn die Benachrichtigung in der Statuszeile erscheint und ich diese anklicke, wird die Aktivität zum zweiten Mal gestartet, anstatt zu der auf Pause gesetzten Aktivität zu wechseln! Wenn ich aber die App über die App-Liste aufrufe, wird sie nicht neu gestartet, sondern in den Vordergrund gebracht. Wie bekomme ich das über die Benachrichtigung hin? Ich hatte in der Zeile
PendingIntent contentIntent = PendingIntent.getActivity(this, 0, notificationIntent, Intent.FLAG_FROM_BACKGROUND); noch andere Flags angegeben, es ändert sich jedoch nichts.

2. Ist es normal, dass die Flags Notification.FLAG_AUTO_CANCEL. Notification.DEFAULT_SOUND, Notification.DEFAULT_LIGHTS vom notification-Objekt ignoriert werden? Z.B. bleibt das Benachrichtigungssymbol in der Statuszeile stehen, wenn die Benachrichtigung angeklickt wurde. Sound und Light bekomme ich auch nicht.

3. Wie muss das Icon eigentlich beschaffen sein, damit es nicht zu einem Ausnahmefehler kommt? Ich hatte ein eigenes notify-icon als png in drawable-hdpi/ldpi/mdpi angelegt, bekomme aber die Meldung, dass das Icon nicht angelegt werden konnte.

Danke schon mal für weitere Tipps!
txbarth ist offline   Mit Zitat antworten
Alt 19.07.2011, 12:41   #2 (permalink)
Fortgeschrittenes Mitglied

Registriert seit: 17.03.2010
Beiträge: 353
Abgegebene Danke: 41
Erhielt 52 Danke für 37 Beiträge
Standard AW: Probleme mit Notification

1. Ich weiß nicht ob es dich weiter bringt aber ich speichere immer alle geöffneten Activitys in einer "Registry"-Klassen um z.B. alle Activity über einen "Exit"-Button zu schließen, dort kann man natürlich auch gucken ob diese schon geöffnet war und die neue bzw. alte dann dicht machen. Intents öffnen soviel ich weiß immer eine neue Activity, es könnte ja auch sein dass die alte mal aus dem Speicher gekickt wurde.

2. Das ist normal, du muss die ID der Notification im Intent mit übergeben und im onCreate der geöffneten Activity wieder löschen.
// im Service:
Code:
activityIntent.putExtra("notificationNr", notificationID);
activityIntent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);

PendingIntent contentIntent = null;
contentIntent = PendingIntent.getActivity(this, 0, activityIntent,                    0);

// Notification anzeigen.
notification.setLatestEventInfo(this,
 getText(R.string.local_service_label), text, contentIntent);

notification.defaults |= Notification.DEFAULT_SOUND;
notification.defaults |= Notification.DEFAULT_VIBRATE;
notification.defaults |= Notification.DEFAULT_LIGHTS;

// Notification abschicken.
mNM.notify(notificationID, notification);
// In der geöffneten Activity:
Code:
// Notification entfernen.
final Intent intent = getIntent();
 if (intent.hasExtra("notificationNr")) {
     int notificationNr = intent.getIntExtra("notificationNr", 0);

            final NotificationManager mn = 
                (NotificationManager) getSystemService(Context.NOTIFICATION_SERVICE);
            mn.cancel(notificationNr);
So läuft bei mir auch der Sound.

3. Mit Icons hatte ich bisher keine Probleme, könnte es falsch geschrieben sein, also es sollte klein geschrieben sein etc. Und die Abmessungen 72x72 in hdpi, 48x48 in mdpi und 36x36 in ldpi haben (ich weiß aber nicht ob das zwingend sein muss).
ChrisMobile ist offline   Mit Zitat antworten
Folgender Benutzer bedankt sich bei ChrisMobile für diesen Beitrag:
txbarth (19.07.2011)
Alt 19.07.2011, 14:51   #3 (permalink)
Neuer Benutzer

Registriert seit: 20.06.2011
Beiträge: 15
Abgegebene Danke: 3
Erhielt 0 Danke für 0 Beiträge
Standard AW: Probleme mit Notification

Das Problem mit dem Icon und dem automatischen Löschen der Benachrichtigung hat sich nun erledigt. Bei dem Icon muss man wohl wirklich auf die Bildgröße achten.
Das Löschen der Benachrichtung habe ich aber in die Methode onStart() verlegt, weil ich irgendwie sicherstellen möchte/muss, dass die Hauptaktivität nur einmal existiert.

Wenn die Hauptaktivität mehrmals gestartet wird, dann würde auch über die Methode onCreate() ein Timer jedes Mal mitgestartet werden, der die regelmäßigen Serveranfragen durchführen soll. Das wäre überflüssig.
Die Hauptaktivität soll nur über ein Optionsmenü über die Methode finish() beendet werden, damit dann auch der Timer in der Methode onDestroy() beendet wird. So weiß dann der Benutzer, dass mit dem Beenden der Applikation auch die Benachrichtigungen ausgeschaltet werden.

Aber irgendwie muss es doch auch über die Benachrichtigungen funktionieren, dass eine laufende App nur in den Vordergrund geholt wird. Es funktioniert ja auch, wenn ich die App aus der App-Liste starte.

Sound und Light bekomme ich noch nicht, aber vielleicht liegt es jetzt auch am Emulator. Auf dem Handy selbst habe ich die App noch nicht getestet.
txbarth ist offline   Mit Zitat antworten
Alt 25.08.2011, 08:36   #4 (permalink)
Erfahrener Benutzer

Modell: Samsung Galaxy S II

Registriert seit: 01.06.2011
Beiträge: 235
Abgegebene Danke: 35
Erhielt 12 Danke für 10 Beiträge
Standard AW: Probleme mit Notification

Hallo,
weiß zufällig jemand, wie man externe Icons in einer App so einbinden kann, daß sie in der Notification Bar angezeigt werden? Konkret geht es darum, daß für eine Profile-App der User sich beliebige Icons für die jeweiligen Profile suchen kann, die dann auch korrekt im Widget angezeigt werden, jedoch nicht in der Notification Bar. Das Problem ist wohl
int icon = R.drawable.notification_icon;
wobei nur interne Icons eine Resource ID besitzen, externe jedoch nicht. Ich bin nicht der Entwickler der App, versuche nur zu helfen da er nicht deutschsprachig ist.
Habt Ihr eine Idee?
Gruß,
Gabs
Gabs ist offline   Mit Zitat antworten
Alt 08.09.2011, 14:25   #5 (permalink)
Erfahrener Benutzer

Modell: Samsung Galaxy S II

Registriert seit: 01.06.2011
Beiträge: 235
Abgegebene Danke: 35
Erhielt 12 Danke für 10 Beiträge
Standard AW: Probleme mit Notification

Antwort von JanF: Das geht prinzipiell nicht, siehe hier
Issue 9107 - android - Notification accept Drawable for icon - Android - An Open Handset Alliance Project - Google Project Hosting
Gabs ist offline   Mit Zitat antworten
Antwort

Stichworte
-

Themen-Optionen
Ansicht


Ähnliche Themen

Thema Autor Forum Antworten Letzter Beitrag
notification bar mit Energieeinstellungen/Switcher?? sebi988 Root / Hacking / Modding für Motorola Defy 4 23.07.2011 09:30
Probleme/keine Probleme mit dem DHD (inkl. Seriennummern) lars_M. HTC Desire HD Forum 53 08.04.2011 01:16
Widgetsoid Notification Bar Widget nur mit Pop-Up padampadam Motorola Defy Forum 4 02.04.2011 23:01
Suche Sense-Theme mit schwarzer Notification-Bar g-man Themes für Desire HD 3 01.02.2011 14:55
Problem mit K-9 Notification MartinBerlin Sonstige Apps & Widgets 7 12.01.2011 08:36




Du liest gerade: "Probleme mit Notification" unter "Android App Entwicklung" auf Android-Hilfe.de.


Powered by vBulletin®
Copyright ©2000 - 2012, vBulletin Solutions, Inc.
Search Engine Friendly URLs by vBSEO
© Android-Hilfe.de 2012 - All rights reserved.