【发布时间】:2020-08-22 18:54:23
【问题描述】:
在我的项目中,我从主要活动转到活动 A,从活动 A 转到活动 B。使用工具栏上的主菜单从活动 B 跳回主要活动。现在,当我按下返回按钮时,应用程序应该退出,但它会再次打开活动 A。
【问题讨论】:
-
如何跳回主活动?
-
通过单击工具栏上的主菜单图标
在我的项目中,我从主要活动转到活动 A,从活动 A 转到活动 B。使用工具栏上的主菜单从活动 B 跳回主要活动。现在,当我按下返回按钮时,应用程序应该退出,但它会再次打开活动 A。
【问题讨论】:
您应该使用启动标志来管理后台堆栈中的活动。据我了解您的情况,我认为您需要使用FLAG_ACTIVITY_CLEAR_TOP 来开始您的主要/家庭活动。
阅读有关启动标志的更多信息:https://developer.android.com/reference/android/content/Intent#FLAG_ACTIVITY_CLEAR_TOP。
另外,请查看以下内容以了解有关在 Android 上管理活动回栈的更多详细信息:https://developer.android.com/guide/components/activities/tasks-and-back-stack#ManagingTasks
【讨论】:
在启动下一个活动之前调用finish() 方法,将其从活动中移除。查找更多详细信息和选项here。
【讨论】:
对于 Kotlin,请在您的 MainActivity 中写入:
override fun onBackPressed() {
moveTaskToBack(true)
exitProcess(-1)
}
对于 Java,请在您的 MainActivity 中写入:
@Override
void onBackPressed() {
moveTaskToBack(true)
exitProcess(-1)
}
希望它对你和我一样有用
【讨论】:
嘿,我为你写了一些代码 变量:
boolean backactivity = true;
代码:
public boolean onOptionsItemSelected(MenuItem item){
if(backactivity==true)
{
finishActivity(1);
backactivity=false;
}else
{
Intent homeIntent = new Intent(Intent.ACTION_MAIN);
homeIntent.addCategory( Intent.CATEGORY_HOME );
homeIntent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
startActivity(homeIntent);
}
return true;
}
【讨论】: