使用Firebase Cloud Messaging,当应用程序在后台并且有消息到达时,消息会转到系统托盘。当用户点击通知时,应用程序被启动并且启动器活动在Intent
.
就我而言,这个通知是关于一些新结果的,所以当按下时,我想启动一个ResultsActivity
.
为了做到这一点,我这样OnStart
做LauncherActivity
:
Intent intent = getIntent();
String searchId = intent.getStringExtra("search_id");
if(searchId != null){
Intent resultsIntent = new Intent(LauncherActivity.this, ResultsActivity.class);
resultsIntent.putExtra(ResultsActivity.SEARCH_ID_EXTRA, searchId);
startActivity(resultsIntent);
}
这一切都很好。
现在的问题是,当单击应用栏上的“向上”箭头时,应用不会转到清单中定义的父活动(不是启动器活动),而是转到启动器活动。这并不奇怪,因为ResultActivity
是从 开始的LauncherActivity
,但这不是想要的行为。想要的行为是让后退箭头发送到父活动,它恰好是MainActivity
.
我知道有TaskStackBuilder
那种东西,但我不知道如何将这种模式应用到我的案例中,在这里我从另一个活动而不是从某个通知生成器开始“正常”活动。
这里有TaskStackBuilder
正确的解决方案吗?如果是这样,我该如何更改上面的代码以使用它?如果不是,那么正确的解决方案是什么?