如何开始一个没有parent的新activity?
How to start a new activity which has no parent?
在我的 android 工作室项目中,我从主要 activity 开始新的 activity。
public void authenticated() {
Intent intent = new Intent(this, AuthenticatedActivity.class);
startActivity(intent);
}
当我在 main activity 中按下后退按钮时,应用程序退出到桌面。但是当我使用函数 authenticated()
启动新的 activity 并按下后退按钮时,应用程序返回到主 activity。我希望它退出到桌面而不是返回主 activity。我该如何组织?
如果您想在打开新的 activity 时关闭当前的 finish()
,请调用 finish()
。
例子
public void authenticated() {
Intent intent = new Intent(this, AuthenticatedActivity.class);
startActivity(intent);
finish();
}
您还可以添加 intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP)
来清理 activity 堆栈。
您可以在 AuthenticatedActivity 的 onBackPressed 上使用 moveTaskToBack(true)
,如下所示
@Override
public void onBackPressed() {
moveTaskToBack(true);
}
@Override
public void onBackPressed() {
if(isTaskRoot()){
authenticated()
}else{
super.onBackPressed();
}
}
在我的 android 工作室项目中,我从主要 activity 开始新的 activity。
public void authenticated() {
Intent intent = new Intent(this, AuthenticatedActivity.class);
startActivity(intent);
}
当我在 main activity 中按下后退按钮时,应用程序退出到桌面。但是当我使用函数 authenticated()
启动新的 activity 并按下后退按钮时,应用程序返回到主 activity。我希望它退出到桌面而不是返回主 activity。我该如何组织?
如果您想在打开新的 activity 时关闭当前的 finish()
,请调用 finish()
。
例子
public void authenticated() {
Intent intent = new Intent(this, AuthenticatedActivity.class);
startActivity(intent);
finish();
}
您还可以添加 intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP)
来清理 activity 堆栈。
您可以在 AuthenticatedActivity 的 onBackPressed 上使用 moveTaskToBack(true)
,如下所示
@Override
public void onBackPressed() {
moveTaskToBack(true);
}
@Override
public void onBackPressed() {
if(isTaskRoot()){
authenticated()
}else{
super.onBackPressed();
}
}