Не убивать приложение при удалении из последних приложений
Я хочу, чтобы мое приложение продолжало работать, когда пользователь удаляет приложение с экрана недавних приложений.
Текущий сценарий:
Стек действия: 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.