Не убивать приложение при удалении из последних приложений - PullRequest
0 голосов
/ 02 июня 2018

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

Текущий сценарий:

Стек активности: A -> B -> C ( служба переднего плана запущена из этой операции).Теперь, если пользователь удаляет приложение с экрана недавних приложений , тогда служба продолжает работать, но действия A, B и C уничтожены .Теперь, если пользователь запускает приложение, начинается действие A.

Требуемый результат:

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

Буду признателен за любые предложения и мысли на эту тему.Спасибо.

1 Ответ

0 голосов
/ 02 июня 2018

Вот ближайшее решение, которое вы можете попробовать .. может быть полезно.Вы можете использовать метод класса вашего приложения, где вы можете отслеживать текущую текущую активность.Для открытия последнего действия сохраните и сохраните переменную в SharedPreferences, если действие приостановлено / или создано (какая бы работа не выполнялась) по методу, приведенному ниже.

private void setupActivityListener() {
        registerActivityLifecycleCallbacks(new ActivityLifecycleCallbacks() {
            @Override
            public void onActivityCreated(Activity activity, Bundle savedInstanceState) {
                if (activity instanceof MainActivity) {
                    Log.e(TAG, "**************** MainActivity Created *******************");

                }
                //Log.e(TAG, "**************** onActivityCreated *******************");
            }

            @Override
            public void onActivityStarted(Activity activity) {
                //Log.e(TAG, "**************** onActivityStarted *******************");
            }

            @Override
            public void onActivityResumed(Activity activity) {
                CancelNotification();
                activeActivity = activity;
                //Log.e(TAG, "**************** onActivityResumed *******************");
            }

            @Override
            public void onActivityPaused(Activity activity) {
                activeActivity = null;
                //Log.e(TAG, "**************** onActivityPaused *******************");
            }

            @Override
            public void onActivityStopped(Activity activity) {
                //Log.e(TAG, "**************** onActivityStopped *******************");
            }

            @Override
            public void onActivitySaveInstanceState(Activity activity, Bundle outState) {
            }

            @Override
            public void onActivityDestroyed(Activity activity) {
                if (activity instanceof MainActivity) {
                    Log.e(TAG, "**************** MainActivity Destroyed *******************");

                }
            }
        });
    }

А при открытии приложения проверьте при запуске, что было последнимактивность ... если это не MainActivity, то перенаправить на желаемое действие ...

Для состояния вы можете сохранить его в связке или другом источнике .. как в sharedpreferance.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...