我有一條消息通知,當用戶選擇通知時,消息顯示活動將顯示。如果在按回密鑰時沒有其他活動爲此Android應用生效,則啓動根活動
當用戶閱讀消息並按回退鍵關閉活動時,我想檢查上一個活動是否是同一個應用程序,如果是,請繼續,如果沒有,我想爲此啓動家庭活動應用程序。
我該怎麼做?
我有一條消息通知,當用戶選擇通知時,消息顯示活動將顯示。如果在按回密鑰時沒有其他活動爲此Android應用生效,則啓動根活動
當用戶閱讀消息並按回退鍵關閉活動時,我想檢查上一個活動是否是同一個應用程序,如果是,請繼續,如果沒有,我想爲此啓動家庭活動應用程序。
我該怎麼做?
這個怎麼樣:讓通知在Home Activity啓動MessageDisplayActivity的狀態下啓動Home Activity。即:(1)通知發送的目的應該是針對HomeActivity幷包含一個額外的標誌,標識來自通知的意圖。 (2)在onCreate()中的HomeActivity發現該標誌後,只需啓動MesssageDisplayActivity。
因此,HomeActivity將存在一段短暫的時間,但可能不足以顯示。然後它將保留在後面的堆棧上,這樣後面的鍵會將你帶到那裏。
你應該考慮改變你的Activity
的launch mode,讓你永遠不會有這個問題 - 使用singleTask
或singleInstance
應該讓這個Activity
始終是唯一的一個開放你的應用程序。
在您的應用程序中有調用消息顯示活動(MDA)的Intetent傳遞一個布爾值「true」,該值被提取並存儲在MDA中的字段中。將字段默認設置爲「false」。因此,如果您的應用程序中的某個活動調用了MDA,則該字段將具有布爾值「true」,如果它從其他任何地方(例如通知)調用,則它將設置爲false。在MDA
覆蓋公共無效onBackPressed()如下:
public void onBackPressed() {
if (wasCalledFromYourApp == true) {
super.onBackPressed();
} else {
//[code that launches your app's home activity here]
}
}
(這是假設將僅由一個應用程序創建的通知)。
在這種情況下,我認爲,如果應用程序在某個階段運行,那麼家庭活動不應標記爲「singleTask」,然後用戶選擇通知,查看消息,按回家的活動密鑰,所有其他作品的人都失去了。 – virsir