【问题标题】:Android: Kill all processes in an applicationAndroid:杀死应用程序中的所有进程
【发布时间】:2011-04-20 12:31:58
【问题描述】:

在我的应用程序中,我有一个“应用程序”和几个活动。我想在用户按下主页按钮后的特定时间(例如 3 分钟)后终止我的应用程序。我能够完成“应用程序”的过程,但只要我的活动还活着,它们就会尝试从最后一个状态开始。

Thread isOnDisplayThread = new Thread(new Runnable() {



            @Override
            public void run() {
                Timer mTimer = new Timer();

                mTimer.schedule(new TimerTask() {

                    @Override
                    public void run() {
                        Log.d(TAG, (isApplicationOnDisplay) ? "Application on display" : "APPLICATION ON BACKGROUND");

                        if (!isApplicationOnDisplay) {
                            notOnDisplayTime++;
                            if (notOnDisplayTime >= 10) {

                                Process.killProcess(Process.myPid());
                            }
                        } else {
                            notOnDisplayTime = 0;
                        }

                    }
                }, 0, 1000);

            }
        });

        isOnDisplayThread.run();

附: isApplicationOnDisplay 是一个静态布尔值,由每个 Activity 的 onPause()onResume() 方法控制。

有没有办法杀死应用程序的所有相关活动?

【问题讨论】:

    标签: android android-activity kill


    【解决方案1】:

    (我不明白为什么每个人都试图杀死自己的应用程序......)

    杀死一个应用程序应该永远由应用程序完成(尽管有时任务管理器有他的优势)。

    我能够完成“应用程序”的流程,但只要我的活动还活着,它们就会尝试从上一个状态开始。

    您可以完全控制状态处理,您可以决定活动是否以最新状态继续。如果您不想要当前的行为,change it,但不要试图杀死您的应用程序。

    简而言之:Android 操作系统决定是否应终止/停止应用程序

    这就是android的设计方式以及应该如何使用......

    【讨论】:

    • 我知道杀死我自己的应用程序并不是一个好的练习。但问题是,当我通过点击主页按钮退出应用程序时,一段时间后,当我在其他一些应用程序中时,我看到一个“强制关闭”窗口,显示我的应用程序的包名称。我得到的异常是 OutOfMemoryException。
    • 那么您应该检查堆栈跟踪是什么导致 OOME 并修复它。这比杀死你的应用程序要好得多......
    【解决方案2】:

    我建议你,完成所有活动,关闭所有线程,不要干扰后台...:))

    【讨论】:

      【解决方案3】:

      一次杀死所有活动是不可能的。

      你应该做两件事来杀死活动和服务

      1) @Override 公共无效 onBackPressed() {
      onDestroy();
      super.onBackPressed(); }

      2) 你应该在 change Intent 处申请 onDestroy();

      3) 如有必要,您应该申请 @覆盖 public void onConfigurationChanged(Configuration newConfig)

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2012-07-27
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2016-02-02
        • 1970-01-01
        • 2013-09-19
        • 1970-01-01
        相关资源
        最近更新 更多