Не убивать приложение при удалении из последних приложений

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

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

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

Требуется результат:

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

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

1 ответ

Вот ближайшее решение, которое вы можете попробовать.. может быть полезно. Вы можете использовать метод класса вашего приложения, где вы можете отслеживать текущую текущую активность. Для открытия последнего действия сохраните и сохраните переменную в 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.

Другие вопросы по тегам