2010-05-26 107 views
7

我一直有一個問題,通知沒有打開/正確的活動,當它被點擊。安卓狀態欄通知 - 選擇通知時打開正確的活動

我的通知代碼(位於延伸服務類):

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

如果我點擊該通知,而其創建的服務應用程序打開,通知消失(由於FLAG_AUTO_CANCEL),但活動不會切換。

如果我點擊主屏幕上的通知,通知消失,並且我的應用程序被帶到最前面,但是它仍然保留在進入主屏幕前打開的活動,而不是進入主屏幕。

我在做什麼錯?我如何指定將被提升的活動?

回答

14

實際上可能回答了自己的問題:

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

感謝您分享您的答案,請你提什麼「Main.class」載? – OnlyHope 2013-01-02 08:27:17

+0

什麼是getApplicationContext()? – OnlyHope 2013-01-02 08:28:34

+1

Main.class將是您想要打開/轉到的活動。 和getApplicationContext是Activity類中的一個方法,它從ContextWrapper類繼承。 http://developer.android.com/reference/android/content/ContextWrapper.html#getApplicationContext%28%29 – 2013-01-03 02:11:28