2011-11-07 54 views
1

我寫了我的通知意圖像這樣(下面的代碼片段)。我有活動A,B和C運行。在運行C時,我按下主屏幕並很快收到通知。我按通知圖標,希望從活動A重新啓動應用程序,但不幸的是它不。這個代碼目前所做的是在堆棧頂部創建一個新的活動A ....所以我堅持以下運行活動(或堆棧):A,B,C,Aandroid通知,而通知圖標被點擊

所以我的主要問題是,我怎樣才能清理Activity堆棧,以便當通知圖標被點擊時只有Activity A在堆棧上?

任何提示或意見將不勝感激。

Intent notificationIntent = new Intent(context, 
       A.class); 

     notificationIntent.setAction(Intent.ACTION_MAIN); 
     notificationIntent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK 
       | Intent.FLAG_ACTIVITY_CLEAR_TOP); 

    PendingIntent contentIntent = PendingIntent.getActivity(context, 0, 
       notificationIntent, 0); 

     notification.setLatestEventInfo(appContext, contentTitle, 
       contentText, contentIntent); 

     String ns = Context.NOTIFICATION_SERVICE; 
     NotificationManager mNotificationManager = (NotificationManager) context 
       .getSystemService(ns); 


    mNotificationManager.notify(1, notification); 

回答

0

爲清單中的活動A設置launchMode =「singleTask」。在這種情況下,活動A將是您從通知中返回後唯一運行的活動。

但是,當啓動模式爲singleTask或singleInstance時,當您從後臺恢復應用程序時,您的應用程序將採用相同的方式。無法恢復到活動B或C.