我有一項服務,顯示一條通知,希望每次用戶按下該按鈕時都能夠訪問我的應用程序的特定活動。通常這將是用戶顯示的最後一個,但並非總是如此。在Android中更改通知意圖
如果之前啓動了活動,它應該返回到它,如果沒有,它應該在應用程序的任務中打開它,並將其添加到活動任務中。
此外,在某些情況下,根據服務的邏輯,我希望更改通知的意圖,以便它將針對不同的活動。
我該怎麼做?是否有可能不創建一個新的通知和解僱前一個?沒有創建新任務或活動實例,是否也有可能?
我有一項服務,顯示一條通知,希望每次用戶按下該按鈕時都能夠訪問我的應用程序的特定活動。通常這將是用戶顯示的最後一個,但並非總是如此。在Android中更改通知意圖
如果之前啓動了活動,它應該返回到它,如果沒有,它應該在應用程序的任務中打開它,並將其添加到活動任務中。
此外,在某些情況下,根據服務的邏輯,我希望更改通知的意圖,以便它將針對不同的活動。
我該怎麼做?是否有可能不創建一個新的通知和解僱前一個?沒有創建新任務或活動實例,是否也有可能?
不,一旦您發送通知,就不可能更改活動。
你可以開始你的任務堆棧上一個活動,是沒有問題的,在本教程這裏檢查出通知服務:
http://blog.blundell-apps.com/notification-for-a-user-chosen-time/
你必須設置的通知掛起的意圖:
// The PendingIntent to launch our activity if the user selects this notification
PendingIntent contentIntent = PendingIntent.getActivity(this, 0, new Intent(this, SecondActivity.class), 0);
// Set the info for the view that shows in the notification panel.
notification.setLatestEventInfo(this, title, text, contentIntent);
你可以看到掛起的意圖需要一個正常的意圖「new Intent(this, SecondActivity.class
」所以,如果你想具體行爲(如把頂端,而不是開始一個新的活動。加入的標誌,就像您諾瑪適合這個意圖。即FLAG_ACTIVITY_REORDER_TO_FRONT(something like that)
所以你說我不能修改通知的意圖?在新版本的Android上也有這種情況,它們有不同的方式來創建通知? –
@androiddeveloper yes在發送給系統後,您無法對其進行修改。雖然你可以發送不同的通知,但這很好 – Blundell
我明白了。如果不能這樣做,但在通知中更改視圖是可能的?我甚至看到一個應用程序在通知中顯示更新圖。肯定這是不可能的,因爲我認爲它的功能非常有限,就像appWidgets一樣。 –
由於平臺版本11,您可以使用Notification.Builder構建通知。 v4支持庫有一個等效的NotificationCompat.Builder類。
發送通知後,您無法更改活動,但可以使用新的Intent更新通知。當您創建PendingIntent時,請使用FLAG_CANCEL_CURRENT標誌。發送新通知時,請在調用NotificationManager.notify()時使用現有通知的ID。
此外,您應該小心如何啓動您的應用程序。狀態欄通知指南將告訴您如何設置後退堆疊。
不知道我明白。你可以通過什麼方式改變通知的意圖?是否可以添加/修改該意圖的額外數據?你會如何去做任何你想要的活動?通過將活動的類名添加到額外的數據? –
我總是嘗試。對不起,如果它不是這樣。 –