2010-05-26 7 views
7

Ich habe ein Problem mit einer Benachrichtigung, die die richtige Aktivität nicht öffnet/öffnet, wenn auf sie geklickt wurde.Android-Statusleiste Benachrichtigungen - Öffnen der richtigen Aktivität beim Auswählen einer Benachrichtigung

Mein Benachrichtigungscode (in einer Klasse befindet sich den Service erweitert):

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); 

Wenn ich die Benachrichtigung klicken, während die Anwendung, die den Dienst erstellt geöffnet ist, die Benachrichtigung verschwindet (aufgrund der FLAG_AUTO_CANCEL), aber die Aktivität schaltet nicht um.

Wenn ich auf der Startseite auf die Benachrichtigung klicke, wird die Benachrichtigung ausgeblendet und meine App wird in den Vordergrund gebracht, bleibt jedoch geöffnet, bevor ich zum Hauptbildschirm gehe, anstatt zum Hauptbildschirm zu gehen.

Was mache ich falsch? Wie lege ich die Aktivität fest, die hochgezogen wird?

Antwort

14

Mai haben meine eigene Frage tatsächlich beantwortet:

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

Vielen Dank für Ihre Antwort zu teilen, würden Sie bitte erwähnen, was die „Main.class“ enthält? – OnlyHope

+0

Und was ist getApplicationContext()? – OnlyHope

+1

Main.class wäre die Aktivität, die Sie öffnen möchten/goto. und getApplicationContext ist eine Methode in der Activity-Klasse, die von der ContextWrapper-Klasse geerbt wird. http://developer.android.com/reference/android/content/ContextWrapper.html#getApplicationContext%28%29 –