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

Я здесь разработал гибридное приложение для Android на базе Cordova, в котором мне нужно выполнить какую-то задачу перед тем, как убить приложение. Для этого я написал код 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();
    }

0 ответов

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

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

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