我在这里开发了一个基于混合Cordova的android应用程序,为此我需要做一些工作,然后再杀死它,我在MainActivity和服务任务之一中的onDestroy()下面编写了代码,该代码很好地调用了Samsum,摩托罗拉,华硕等除Redmi MI设备外的许多设备。
几天前,相同的代码正在MI设备中运行,但现在在使用MIUI 9.6.0及更高版本更新MI之后,它不再起作用。我已经使用MI 9.5.0测试了一种MI设备,该MI设备可以同时使用这两种方法,但是在升级我的设备后,它现在无法使用。
那么有人遇到同样的问题吗?我们该怎么做才能实现应用程序终止事件?是否有任何选择可以通过它开始工作,或者有其他方法可以仅对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 :(得分:1)
很少有包括(RedMi)的OEM定制堆栈ROM来优化电池/内存,并阻止了“ onDestroy()”和“ onTaskRemoved”回调。 作为用户,您可以通过锁定应用程序来防止该应用程序的服务被杀死。 或者,通过为应用程序启用“自动启动”设置,将应用程序列入白名单。您可以通过编程方式提示用户启用该应用的自动启动功能:Please find details here
请注意:我已经在少数设备上以编程方式测试了自动启动启用功能,但发现它并不总是能够正常工作。因此,不确定如何以正确的方式进行修复,但是此解决方案至少可以在一定程度上起作用。