當您按下返回按鈕時,Android會返回上一個活動,但在您的位置沒有最後一個活動,因爲您直接啓動了RidesActivity。
要解決此問題,您可以通過通知中的Intent而不是您的RidesActivity啓動MainAcivity,並將一些額外的信息直接啓動RidesActivity。
代碼爲您的通知:
Intent intent = new Intent(context, MainActivity.class);
intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK); //is important to start the activity from a notification
intent.putExtra("startRidesActivity", true);
startActivity(intent);
代碼爲您的MainActivity,onCreate方法:
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
/*
* Put the following at the end of this method
*/
Bundle bundle = getIntent().getExtras();
if(bundle!=null && bundle.containsKey("startRidesActivity")){
Intent intent = new Intent(this, RidesActivity.class);
startActivity(intent);
}
}
就是這樣。現在你的通知打開MainActivity,MainActivity直接開始你的RidesActivity。如果你點擊後退按鈕,你應該看到你的MainActivity,而不是你的主屏幕。
很好的答案!非常感謝。只是所以我知道,爲什麼從通知開始活動時添加NEW_TASK標誌很重要?在其他情況下,你需要把這個標誌? –
這很重要,因爲通知不會在您的應用程序的上下文中運行,並且Android需要此信息才能在「新任務」中啓動您的應用程序。這裏很好解釋:http://stackoverflow.com/questions/30886618/android-notification-intent-flag-activity-new-task-required – Larcado
明白了。此外,如果我在應用程序中收到通知,並且我點擊它 - 我將按照以下順序執行活動:RidesActivity-> HomeActivity->正在運行的其他任何活動。我應該在點擊通知時殺死所有其他活動嗎? –