Autore Topic: Notifica onGoing e notifica semplice da servizio  (Letto 508 volte)

Offline menion83

  • Nuovo arrivato
  • *
  • Post: 45
  • Respect: +2
    • Mostra profilo
  • Dispositivo Android:
    Motorola Milestone - Samsung Galaxy Tab - Samsung Galaxy S - LG Optimus One - HTC Dream
  • Sistema operativo:
    Windows 7 Ultimate 32/64 - Ubuntu 10.10
Notifica onGoing e notifica semplice da servizio
« il: 09 Ottobre 2011, 13:16:09 CEST »
0
Ciao Ragazzi,
sto "giocando" un po' con le notifiche.
Ho creato una notifica onGoing quando parte il servizio dell'applicazione.
Nella stessa applicazione vorrei far partire una notifica quando il servizio si sveglia e mi avverte che sta arrivando qualcosa.
Ho creato una notifica però quando arriva cancella quella in corso...
E' possibile far convivere entrambe le notifiche?

Quando poi clicco sulla notifica del messaggio mi apre l'activity ma ne crea una nuova! Se faccio indietro con il pulsante mi prende l'activity con il risultato. Come faccio a non fargli creare di nuovo l'activity ma tornare su quella che sta girando in background?

Ecco il codice della notifica onGoing:

Codice (Java): [Seleziona]
mNotificationManager = (NotificationManager) getSystemService(NOTIFICATION_SERVICE);

                        final Notification notifyDetails = new Notification(
                                        R.drawable.icon, "App Service",
                                        System.currentTimeMillis());

                        Context context = getApplicationContext();
                        CharSequence contentTitle = "My App";
                        CharSequence contentText = "Servizio in esecuzione...";
                        Intent notifyIntent = new Intent(context, StartService.class);
                        PendingIntent intent = PendingIntent.getActivity(StartService.this,
                                        0, notifyIntent, 0);
                        notifyDetails.contentIntent = intent;
                        notifyDetails.setLatestEventInfo(context, contentTitle,
                                        contentText, intent);
                        notifyDetails.defaults |= Notification.DEFAULT_SOUND;
                        notifyDetails.flags = Notification.FLAG_ONGOING_EVENT;
                        mNotificationManager.notify(SIMPLE_NOTFICATION_ID, notifyDetails);

Questo è invece il codice della notifica quando arriva il messaggio:

Codice (Java): [Seleziona]
mNotificationManager2 = (NotificationManager) getSystemService(NOTIFICATION_SERVICE);

                        final Notification notifyDetails2 = new Notification(
                                        R.drawable.icon, "App Service",
                                        System.currentTimeMillis());

                        Context context2 = getApplicationContext();
                        CharSequence contentTitle2 = "My App";
                        CharSequence contentText = msg;
                        Intent notifyIntent2 = new Intent(context2, StartService.class);
                                        PendingIntent intent2 = PendingIntent.getActivity(context2, 0,
                                        notifyIntent2, PendingIntent.FLAG_NO_CREATE);
                        notifyDetails2.contentIntent = intent2;
                        notifyDetails2.setLatestEventInfo(context2, contentTitle2,
                                        contentText, intent2);
                        notifyDetails2.defaults |= Notification.DEFAULT_SOUND;
                        notifyDetails2.flags = Notification.FLAG_AUTO_CANCEL;
                        mNotificationManager2.notify(SIMPLE_NOTFICATION, notifyDetails2);

Ciao!

Offline menion83

  • Nuovo arrivato
  • *
  • Post: 45
  • Respect: +2
    • Mostra profilo
  • Dispositivo Android:
    Motorola Milestone - Samsung Galaxy Tab - Samsung Galaxy S - LG Optimus One - HTC Dream
  • Sistema operativo:
    Windows 7 Ultimate 32/64 - Ubuntu 10.10
Re:Notifica onGoing e notifica semplice da servizio
« Risposta #1 il: 17 Ottobre 2011, 12:51:02 CEST »
0
Ciao Ragazzi!
Ho risolto il problema della creazione della nuova activity mettendo nel manifest "android:launchMode="singleTop".

C'è un problema che mi sta facendo uscire matto..

C'è un servizio che intercetta un messaggio XMPP. Crea una notifica e fa apparire un alert dialog nell'applicazione che avverte che è arrivato un messaggio da leggere.

Se sono nell'applicazione crea il tutto e funziona benissimo.

Se sono fuori dall'app crea la notifica dicendomi che è arrivato il messaggio e quando clicco sulla notifica mi apre l'activity e mi si annerisce leggermente.

Praticamente è come se creasse l'alert ma non lo fa vedere... tant'è che se premo la freccia indietro è come se cancellasse l'alert e il tutto torna a funzionare perfettamente.

Questo comportamento è legato alla modifica fatta sul Manifest... c'è un modo per far apparire l'alert una volta rientrato sull'activity?

Spero in un vostro aiuto!