【问题标题】:Press back button on main activity opens other activity在主要活动上按后退按钮打开其他活动
【发布时间】:2020-08-22 18:54:23
【问题描述】:

在我的项目中,我从主要活动转到活动 A,从活动 A 转到活动 B。使用工具栏上的主菜单从活动 B 跳回主要活动。现在,当我按下返回按钮时,应用程序应该退出,但它会再次打开活动 A。

【问题讨论】:

  • 如何跳回主活动?
  • 通过单击工具栏上的主菜单图标

标签: java android


【解决方案1】:

您应该使用启动标志来管理后台堆栈中的活动。据我了解您的情况,我认为您需要使用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

【讨论】:

  • np。玩得开心编码:)
【解决方案2】:

在启动下一个活动之前调用finish() 方法,将其从活动中移除。查找更多详细信息和选项here

【讨论】:

    【解决方案3】:

    对于 Kotlin,请在您的 MainActivity 中写入:

    override fun onBackPressed() {
        moveTaskToBack(true)
        exitProcess(-1)
    }
    

    对于 Java,请在您的 MainActivity 中写入:

    @Override
    void onBackPressed() {
        moveTaskToBack(true)
        exitProcess(-1)
    }
    

    希望它对你和我一样有用

    【讨论】:

      【解决方案4】:

      嘿,我为你写了一些代码 变量:

      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;
          }
      

      【讨论】:

        猜你喜欢
        • 2011-11-28
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2021-11-28
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多