【问题标题】:How to Kill Application From any activity in android如何从android中的任何活动中杀死应用程序
【发布时间】:2013-01-15 15:18:07
【问题描述】:

我有 5 个活动。当我单击这 5 个活动中的任何一个按钮时,我想关闭应用程序,当我重新打开它时,我想从第一个活动启动应用程序。谁能帮帮我。

我使用了这个代码:

    CurrentActivity.this.moveTaskToBack(true);
    android.os.Process.killProcess(android.os.Process.myPid());

它工作正常,但是当我重新启动应用程序时,它不显示第一个活动。

【问题讨论】:

  • 为什么要这样做?为什么不让您的应用程序像 Android 应用程序应该和 99% 那样导航?应用程序中的“关闭”按钮是一个丑陋的东西。
  • Close Android Application的可能重复
  • @Simon 我同意,亨廷顿银行应用程序有这个按钮,如果不点击它就无法退出应用程序,甚至后退按钮也无法退出应用程序。糟糕的设计。
  • 这不是一个好习惯。所以,请!让 Android 系统为您做到这一点。
  • 您的“要求”完全是垃圾。 stackoverflow.com/questions/2033914/…

标签: android android-intent


【解决方案1】:

使用 finish() 从 backstack 中弹出您的 Activity 但始终注意 BackStack ,您可以使用以下标志清除您的 back stack :FLAG_ACTIVITY_CLEAR_TOP 和 在启动 Activity 时使用此标志,因此当您启动第 5 个 Activity 时,堆栈中只有第 5 个 Activity 并完成它会导致您的应用关闭。

【讨论】:

    【解决方案2】:

    你正在做的事情是不正确的,因为你正在杀死进程,这会杀死进程中的每个活动。这会使你的应用程序在你再次打开它时变得不稳定。你当前使用的只是在 android 任务管理器中使用杀死应用程序的授权方式。 我建议你使用finish()。

    【讨论】:

      【解决方案3】:

      这是我找到的最好方法。它会杀死应用程序的所有活动并将用户返回到主屏幕。

      //Takes user to home screen
      Intent intent = new Intent(Intent.ACTION_MAIN);
      intent.addCategory(Intent.CATEGORY_HOME);
      intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
      startActivity(intent);
      //Kills all activities of app
      System.exit(0);
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2014-05-27
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多