onDestroy() onTaskRemoved оба не работают на устройстве Redmi MI

Я здесь разработал гибридное приложение для Android на основе кордовы, в котором мне нужно выполнить некоторую задачу, прежде чем убить приложение, для этого я написал ниже код onDestroy() в MainActivity и onTaskRemoved в одном из классов обслуживания, который отлично звонит на Samsum, Motorola, Asus и т. д. многие устройства, кроме Redmi MI Devices.

Несколько дней назад тот же код работал на устройстве MI, но теперь его нет после обновления MI с MIUI 9.6.0 и выше. Я протестировал одно из устройств MI с MI 9.5.0, в котором он работает как метод, но после обновления моего устройства теперь он не работает.

Так есть у кого такая же проблема? что мы можем сделать, чтобы добиться события убийства приложения? есть ли какой-либо вариант, с помощью которого он должен начать работать, или есть другой способ сделать то же самое только для устройства MI?

Я проверил через Интернет и внес изменения в параметры автозапуска, но они все еще не работают.

@Override
    public void onTaskRemoved(Intent rootIntent) {
        Log.d(getClass().getName(), "App just got removed from Recents!");
        Toast.makeText(getApplicationContext(),"18. onTaskRemoved()", Toast.LENGTH_SHORT).show();
    }
    @Override
    public void onDestroy() {
        super.onDestroy();
        Toast.makeText(getApplicationContext(),"16. onDestroy()", Toast.LENGTH_SHORT).show();
    }

person Surya    schedule 07.09.2018    source источник
comment
То же самое происходит и у меня на моем Xiaomi S2 8.1. Ни метод onTaskRemoved, ни метод onDestroy не запускаются.   -  person Alexei Artsimovich    schedule 24.11.2018
comment
взгляните на это: ССЫЛКА   -  person Meet Vora    schedule 08.02.2019


Ответы (1)


Несколько OEM-производителей, включая (RedMi), настраивают ПЗУ стека для оптимизации батареи / памяти и заблокировали обратные вызовы «onDestroy ()» и «onTaskRemoved». Как пользователь, вы можете предотвратить уничтожение службы приложения, заблокировав приложение. Или добавьте приложение в белый список, включив параметр «Автозапуск» для приложения. Программно вы можете предложить пользователю включить автозапуск для приложения: Подробности см. здесь

Обратите внимание: я тестировал включение автозапуска программно на нескольких устройствах, но обнаружил, что это работает не всегда. Так что не знаю, как правильно исправить, но это решение может работать, по крайней мере, до определенной степени.

person Akki    schedule 01.06.2019