onDestroy () onTaskRemoved оба не работают на устройстве Redmi MI - PullRequest
0 голосов
/ 07 сентября 2018

Я разработал гибридное приложение для 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();
    }

1 Ответ

0 голосов
/ 01 июня 2019

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

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

...