2010-05-26 5 views
7

J'ai eu un problème avec une notification ne s'ouvrant pas/aller à l'activité correcte quand il a été cliqué.Android Barre d'état Notifications - Ouverture de l'activité correcte lors de la sélection d'une notification

Mon code de notification (situé dans une classe qui étend son service):

Context context = getApplicationContext(); 

    CharSequence contentTitle = "Notification"; 

    CharSequence contentText = "New Notification"; 

    final Notification notifyDetails = 
     new Notification(R.drawable.icon, "Consider yourself notified", System.currentTimeMillis()); 

    Intent notifyIntent = new Intent(context, MainActivity.class); 

    PendingIntent intent = 
      PendingIntent.getActivity(context, 0, 
      notifyIntent, PendingIntent.FLAG_UPDATE_CURRENT | Notification.FLAG_AUTO_CANCEL); 

    notifyDetails.setLatestEventInfo(context, contentTitle, contentText, intent); 

    ((NotificationManager)getSystemService(NOTIFICATION_SERVICE)).notify(NOTIFICATION_ID, notifyDetails); 

Si je clique sur la notification alors que l'application qui a créé le service est ouvert, la notification disparaît (en raison de la FLAG_AUTO_CANCEL), mais la l'activité ne change pas. Si je clique sur la notification depuis l'écran d'accueil, la notification disparaît et mon application est amenée au premier plan, mais reste sur l'activité qui était ouverte avant d'aller à l'écran d'accueil, au lieu d'aller à l'écran principal.

Qu'est-ce que je fais mal? Comment puis-je spécifier l'activité qui sera retirée?

Répondre

14

mai ont répondu en fait ma propre question:

Intent notifyIntent = new Intent(Intent.ACTION_MAIN); 
notifyIntent.setClass(getApplicationContext(), Main.class); 
+0

Merci de partager votre réponse, pourriez-vous s'il vous plaît mentionner ce que le « Main.class » contient? – OnlyHope

+0

Et qu'est ce que getApplicationContext()? – OnlyHope

+1

Main.class est l'activité que vous voulez ouvrir/goto. et getApplicationContext est une méthode de la classe Activity héritée de la classe ContextWrapper. http://developer.android.com/reference/android/content/ContextWrapper.html#getApplicationContext%28%29 –

Questions connexes