Ну, это происходит на всех китайских устройствах, потому что они используют пользовательские ОС для оптимизации работы батареи.Вот почему ОС убивает каждый процесс в фоновом режиме, когда приложение убивается.Вам нужно сделать несколько вещей, чтобы ваша служба работала в фоновом режиме.
Сначала включите функцию запуска, как вы уже это сделали.Вы также можете достичь этого с помощью кода.
private void keepServicesInChineseDevices() {
Intent intent = new Intent();
String manufacturer = android.os.Build.MANUFACTURER;
switch (manufacturer) {
case "xiaomi":
intent.setComponent(new ComponentName("com.miui.securitycenter",
"com.miui.permcenter.autostart.AutoStartManagementActivity"));
break;
case "oppo":
intent.setComponent(new ComponentName("com.coloros.safecenter",
"com.coloros.safecenter.permission.startup.StartupAppListActivity"));
break;
case "vivo":
intent.setComponent(new ComponentName("com.vivo.permissionmanager",
"com.vivo.permissionmanager.activity.BgStartUpManagerActivity"));
break;
}
List<ResolveInfo> arrayList = getPackageManager().queryIntentActivities(intent,
PackageManager.MATCH_DEFAULT_ONLY);
if (arrayList.size() > 0) {
AppDataHolder.getSession(MyApplication.getAppContext()).setPermissionForChineseDevices(true);
startActivity(intent);
}
}
Во-вторых, вам нужно заблокировать приложение в списке недавних приложений, чтобы при его перетаскивании все приложения из лотка ваше приложение не было убито или украдено.
Надеюсь, это поможет вам.