Android: убить все процессы в приложении - PullRequest
0 голосов
/ 20 апреля 2011

В моем приложении есть «Приложение» и несколько видов деятельности. Я хотел бы закрыть приложение через определенное время (например, 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 - это статическое логическое значение, контролируемое методами onPause() и onResume() каждой операции.

Есть ли способ убить все связанные действия приложения?

Ответы [ 3 ]

1 голос
/ 20 апреля 2011

(я не могу понять, почему каждый пытается убить свое собственное приложение ...)

Уничтожение приложения должно никогда выполняться приложением (хотя иногда диспетчер задач имеетего преимущества).

Я могу завершить процесс "Приложения", но пока мои действия живы, они пытаются начать с их последнего состояния.

У вас есть полный контроль над обработкой состояния, вы решаете, продолжать ли действие с последним состоянием или нет.Если вам не нужно текущее поведение, измените его , но не пытайтесь уничтожить ваше приложение.

Чтобы сделать его коротким: ОС Android решает, будет ли приложениедолжен быть убит / остановлен или нет

Вот как устроен андроид и как его использовать ...

1 голос
/ 23 сентября 2011

Я предлагаю вам закончить все действия, закрыть все темы, не мешать фону ...:))

0 голосов
/ 20 апреля 2011

Убить все действия сразу невозможно.

вам нужно сделать две вещи, чтобы убить действия и службы

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

2) вы должны обратиться при изменении Intent onDestroy ();

3) и при необходимости вы должны применить @Override public void onConfigurationChanged (Configuration newConfig)

...