在我的项目中,我从主要活动转到活动a,从活动a转到活动b。从活动b使用工具栏上的主菜单,我跳回主活动。现在,当我按下后退按钮时,应用程序应该退出,但它会再次打开活动a。
but5z9lq1#
打电话给 finish() 方法将其从活动中移除。请在此处查找更多详细信息和选项。
finish()
w9apscun2#
您应该使用启动标志来管理后堆栈中的活动。据我所知,你需要使用 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
FLAG_ACTIVITY_CLEAR_TOP
68de4m5k3#
嘿,我给你写了一些代码:布尔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; }
sbtkgmzw4#
对于kotlin,在你的主要活动中写下:
override fun onBackPressed() { moveTaskToBack(true) exitProcess(-1) }
对于java,请在mainactivity中编写以下内容:
@Override void onBackPressed() { moveTaskToBack(true) exitProcess(-1) }
希望它对你和我一样有用
4条答案
按热度按时间but5z9lq1#
打电话给
finish()
方法将其从活动中移除。请在此处查找更多详细信息和选项。w9apscun2#
您应该使用启动标志来管理后堆栈中的活动。据我所知,你需要使用
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
68de4m5k3#
嘿,我给你写了一些代码:
布尔backactivity=true;
代码:
sbtkgmzw4#
对于kotlin,在你的主要活动中写下:
对于java,请在mainactivity中编写以下内容:
希望它对你和我一样有用