我有一个Android应用,它有HomeActivity
作为所有其他活动的父活动。意思是 - 我总是有一个实例,如果您从任何活动中按返回按钮,它将带您参加此活动。
现在,可以选择从通知中启动应用程序。
当用户点击通知时,我会启动RidesActivity
(其中一个其他活动),在这种情况下,如果我按返回,它会关闭应用(没有{的实例{1}})。
如何在背景中启动HomeActivity
的实例,并确保如果用户点击返回,它会转到HomeActivity
?
答案 0 :(得分:2)
当您按下后退按钮时,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而不是主屏幕。