android - 当应用程序从通知启动时提供返回导航
android - provide back navigation when app launched from notification
我有一个 android 应用程序,其中 HomeActivity
作为所有其他活动的父级 activity。意思是 - 我总是有一个它的实例,如果你从任何 activity 按下 back 按钮,它将带你到这个 activity.
现在,可以选择从通知启动应用程序。
当用户点击通知时,我开始 RidesActivity
(其他活动之一),在这种情况下,如果我按 back,它会关闭应用程序(没有 HomeActivity
的实例)。
我该怎么做才能在后台启动 HomeActivity
的实例,并确保如果用户单击 back,它将转到 HomeActivity
?
Android 当你按下后退按钮时回到最后一个 activity,但你的位置没有最后一个 activity,因为你直接启动了 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);
}
}
就是这样。现在您的 Notification 打开了 MainActivity 并且 MainActivity 直接启动了您的 RidesActivity。如果你点击后退按钮,你应该看到你的 MainActivity 而不是你的主屏幕。
我有一个 android 应用程序,其中 HomeActivity
作为所有其他活动的父级 activity。意思是 - 我总是有一个它的实例,如果你从任何 activity 按下 back 按钮,它将带你到这个 activity.
现在,可以选择从通知启动应用程序。
当用户点击通知时,我开始 RidesActivity
(其他活动之一),在这种情况下,如果我按 back,它会关闭应用程序(没有 HomeActivity
的实例)。
我该怎么做才能在后台启动 HomeActivity
的实例,并确保如果用户单击 back,它将转到 HomeActivity
?
Android 当你按下后退按钮时回到最后一个 activity,但你的位置没有最后一个 activity,因为你直接启动了 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);
}
}
就是这样。现在您的 Notification 打开了 MainActivity 并且 MainActivity 直接启动了您的 RidesActivity。如果你点击后退按钮,你应该看到你的 MainActivity 而不是你的主屏幕。