2011-01-31 13 views
9

Ho un'applicazione, voglio mostrare l'icona della mia app alla barra di notifica quando la mia applicazione è in esecuzione e voglio anche quando l'utente farà clic sull'icona della mia app presente nella barra di notifica la mia app sarà aperta. Come fare questo? Per favore aiuto!avviare un'applicazione dalla barra di notifica in Android

risposta

14

Per creare una notifica barra di stato, fare questo nel vostro metodo onCreate:

  1. ottenere un riferimento alla NotificationManager:

    String ns = Context.NOTIFICATION_SERVICE; 
        NotificationManager mNotificationManager = (NotificationManager) getSystemService(ns); 
    
  2. istanziare la notifica:

    int icon = R.drawable.notification_icon; 
        CharSequence tickerText = "Hello"; 
        long when = System.currentTimeMillis(); 
    
        Notification notification = new Notification(icon, tickerText, when); 
    
  3. Definire il messaggio espanso e l'intento della notifica :

    Context context = getApplicationContext(); 
        CharSequence contentTitle = "My notification"; 
        CharSequence contentText = "Hello World!"; 
        Intent notificationIntent = new Intent(this, MyClass.class); 
        PendingIntent contentIntent = PendingIntent.getActivity(this, 0, notificationIntent, 0); 
    
        notification.setLatestEventInfo(context, contentTitle, contentText, contentIntent); 
    
  4. Passare il Notifica alla NotificationManager:

    private static final int HELLO_ID = 1; 
    
        mNotificationManager.notify(HELLO_ID, notification); 
    

    Questo è tutto. Il tuo utente ora è stato avvisato.

+0

nuova Notifica() e setLatestEventInfo sono obsoleti ora. Vedere la mia risposta qui sotto o andare alla documentazione di google, http: //developer.android.com/guide/topics/ui/notifiers/notifications.html, per il modo aggiornato di mostrare una notifica. – GLee

3

alcuni suggerimenti:

  • se si desidera che l'icona nella barra di notifica, è necessario inviare alcune notifica.
  • L'applicazione non può essere avviata facendo clic sull'icona di notifica. Può essere avviato facendo clic sulla notifica, che sarà disponibile se la barra di notifica a discesa dell'utente. A tale scopo è necessario creare PendingIntent.
7

La risposta accettata è deprecata. Ecco il modo di mostrare una finestra di dialogo, da google documentation.

NotificationCompat.Builder mBuilder = new NotificationCompat.Builder(this).setSmallIcon(R.drawable 
      .logo_listy).setContentTitle("My notification").setContentText("Hello World!"); 

    Intent resultIntent = new Intent(this, ResultActivity.class); 
    TaskStackBuilder stackBuilder = TaskStackBuilder.create(this); 
    stackBuilder.addParentStack(ResultActivity.class); 
    stackBuilder.addNextIntent(resultIntent); 
    PendingIntent resultPendingIntent = 
      stackBuilder.getPendingIntent(0, PendingIntent.FLAG_UPDATE_CURRENT); 
    mBuilder.setContentIntent(resultPendingIntent); 

    NotificationManager mNotificationManager = 
      (NotificationManager) getSystemService(Context.NOTIFICATION_SERVICE); 
    mNotificationManager.notify(0, mBuilder.build()); 
+0

Funziona alla grande. Potrebbe essere utile a qualcuno per renderlo una notifica "in corso": Notifica notificata = mBuilder.build(); noti.flags = Notification.FLAG_ONGOING_EVENT; – Artur

+0

come faccio a impostare la notifica dovrebbe essere il fuoco dopo ogni 2 minuti? – Neo

Problemi correlati