【问题标题】:Android - Clicking on Home button to clear activity from stackAndroid - 单击主页按钮以从堆栈中清除活动
【发布时间】:2013-12-18 04:15:09
【问题描述】:

在我的应用程序中,当我单击主页按钮时,如果按下主页按钮,我希望清除活动堆栈。谁能帮帮我。假设有 2 个活动 Activity A 和 Activity B。 如果我们从 Activity B 单击主页按钮,然后重新启动应用程序,我希望从 Activity A 启动应用程序,但它正在从 Activity B 恢复。谁能帮我解决这个问题。

【问题讨论】:

    标签: android android-activity


    【解决方案1】:

    只需在您的 Acitivity B onPause() 方法中调用 finish()。

    【讨论】:

    • 这个解决方法没问题,但如果另一个应用程序(如消息传递)占据前台,则 Activity B 无论如何都会被销毁
    • 没错,这只是一个“快速提示”;)我希望它能引导人们走向正确的方向。
    【解决方案2】:

    尝试在您的清单中为活动 A 添加标签 android:clearTaskOnLaunch="true",以使启动器始终转到该活动。

    【讨论】:

      【解决方案3】:

      注意接受的答案,如果您旋转设备或其他应用程序进入前台,您的视图将被销毁,因为将调用 onPause() 方法。如果您只想通过点击主页按钮来破坏您的活动,我建议这样做:

      @Override
      public void onAttachedToWindow() {
          super.onAttachedToWindow();
          this.getWindow().setType(WindowManager.LayoutParams.TYPE_KEYGUARD);           
      }
      
      @Override
      public boolean onKeyDown(int keyCode, KeyEvent event) {
          if (event.getAction() == KeyEvent.KEYCODE_HOME){
              finish();            
          } else
              return super.onKeyDown(keyCode, event);
      }
      

      【讨论】:

      • 用户想要从任务中删除所有活动,而不仅仅是当前活动。您的回答只会删除堆栈中的顶部活动。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2011-10-27
      • 1970-01-01
      • 2012-09-19
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-09-19
      相关资源
      最近更新 更多