【问题标题】:How to kill all my application's activities?如何杀死我的所有应用程序的活动?
【发布时间】:2010-08-31 14:25:47
【问题描述】:

我怎样才能杀死我的应用程序的所有活动?

我尝试使用this.finish(),但它只会杀死一个 Activity。

事实上,我希望当用户触摸返回按钮时(仅在其中一个活动中),应用程序做的就像他按下 Home 按钮一样。

【问题讨论】:

标签: android android-activity back-button android-homebutton


【解决方案1】:

您可以在 AndroidManifest.xml 中为您的所有活动设置android:noHistory="true"。因此,他们不会将自己置于历史堆栈中,并且后退按钮会将您带到主屏幕。

【讨论】:

    【解决方案2】:

    这已经讨论过很多次了。本质上没有简单的方法,也不应该有。用户按 Home 键退出您的应用(正如您所指出的)。

    【讨论】:

      【解决方案3】:

      覆盖onBackPressed 方法,并执行当他们按下主页按钮时发生的事情。它并没有真正关闭所有活动,但您要问的是某个活动中的后按模拟主页按钮。

      @Override
      public void onBackPressed() {
          Intent i = new Intent(Intent.ACTION_MAIN);
          i.addCategory(Intent.CATEGORY_HOME);
          startActivity(i);
      }
      

      当您按下返回时,将其放在活动中会回家。请注意,onBackPressed 方法的原始实现包括对 super 的调用,它被故意删除。我知道这个问题很老了,但他明确地问了别的问题

      【讨论】:

        【解决方案4】:

        要终止所有活动,请在 onBackPressed 上使用这些代码。

        @Override
        public void onBackPressed() {
            if (getFragmentManager().getBackStackEntryCount()>0) {
               getFragmentManager().popBackStackImmediate();            
            } else {
                  finishAffinity();
                  System.exit(0);
            }
        }
        

        【讨论】:

          猜你喜欢
          • 2011-03-07
          • 1970-01-01
          • 1970-01-01
          • 2018-02-20
          • 1970-01-01
          • 2014-05-27
          • 2013-01-15
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多