我遇到了一些問題,並且在很多地方看過,我似乎找不到答案。Android通知打開最後的活動,而不是正確的活動
我有一項服務,該服務檢查網站上的通知,並提醒用戶新的通知。當用戶點擊這個通知時,它應該把他們帶到一個活動(我會稱之爲評論活動)
但是,如果我點擊應用程序內的通知,什麼都不會發生。如果我在應用程序外部單擊通知,它會打開應用程序關閉前顯示的最後一個活動。
這是我用來顯示通知代碼:
Notice n; //Notification from site
....
Intent nIntent = new Intent(Intent.ACTION_MAIN);
nIntent.setClass(getApplicationContext(), CommentActivity.class);
nIntent.putExtra("activity_id", n.getFeedID());
nIntent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_REORDER_TO_FRONT);
PendingIntent pIntent = PendingIntent.getActivity(getApplicationContext(), 0, nIntent, PendingIntent.FLAG_UPDATE_CURRENT | PendingIntent.FLAG_ONE_SHOT);
NotificationCompat.Builder mBuilder =
new NotificationCompat.Builder(FlankNotificationService.this)
.setSmallIcon(R.drawable.ic_launcher)
.setContentTitle(n.getTitle())
.setContentText(n.getText())
.setContentInfo(arg0.getNotificationAmount() + " notification" + (arg0.getNotificationAmount() == 1 ? "." : "s."))
.setContentIntent(pIntent);
Notification mm = mBuilder.getNotification();
mm.flags = Notification.FLAG_ONLY_ALERT_ONCE | Notification.FLAG_AUTO_CANCEL;
mm.tickerText = n.getText();
....
mNM.notify(1558, mm);
因此,而不是開放的CommentActivity,它會繼續執行該應用程序(如果應用程序沒有打開),或者什麼也不做(如果應用程序是打開)
謝謝。
編輯1:
新增Intent.FLAG_ACTIVITY_REORDER_TO_FRONT標誌意圖。仍然沒有解決問題。
編輯2:
,我發現我的問題的原因(這是一個相當愚蠢的原因)。當CommentActivity啓動時,如果它沒有從savedInstance或Intent.getExtra傳遞任何數據,那麼它將會關閉。我之所以沒有想到這一點,是因爲它甚至沒有顯示過渡。修復Intent.getExtra問題後,它現在可以工作。謝謝你所有的答案。
這就是它應該做的。就像再次點擊啓動器中的應用程序圖標一樣。如果您希望此活動始終顯示,請在清單中用'android:clearTaskOnLaunch =「true」'標記您的活動。 –
添加到評論活動?我試過了,但仍然沒有解決問題。 – edkek
_ + 1_這裏是最好的解決方案http://stackoverflow.com/questions/31448840/android-how-to-open-last-activity-when-tapping-notification – nAkhmedov