Android:杀死应用程序中的所有进程

时间:2011-04-20 12:31:58

标签: android android-activity kill

在我的应用程序中,我有一个“应用程序”和几个活动。我想在用户按下主页按钮后的特定时间(例如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();

P.S。 isApplicationOnDisplay是由每个Activity的onPause()onResume()方法控制的静态布尔值。

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

3 个答案:

答案 0 :(得分:1)

(我无法理解为什么每个人都试图杀死他自己的应用程序......)

杀死某个应用程序应该从不由应用程序完成(尽管有时候任务管理员有其优势)。

  

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

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

简而言之: Android操作系统决定是否应该杀死/停止某个应用

知道如何设计android以及如何使用它......

答案 1 :(得分:1)

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

答案 2 :(得分:0)

所有活动都不可能立即杀死。

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

1)@Override     public void onBackPressed(){
        的onDestroy();
        super.onBackPressed();                 }

2)你应该在改变意图时申请 的onDestroy();

3)如果需要,你应该申请  @覆盖 public void onConfigurationChanged(Configuration newConfig)