我正在使用前台服务来跟踪用户的位置,但是它在诸如OPPO VIVO和XIOAMI MIUI的少数设备上停止。
阅读一些文章后,我尝试了一些类似的操作 对于OPPO 1:打开启动管理器 2:关闭后台冻结,异常应用优化和打Optimization
我想在后台运行我的服务。
答案 0 :(得分:0)
在所有中文设备中都会发生这种情况,因为它们使用自定义操作系统来优化电池性能。这就是为什么当应用被终止时,操作系统会在后台终止所有进程的原因。您需要做一些事情来使服务在后台运行。
首先已经启动了启动功能。 您也可以通过代码来实现。
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);
}
}
第二 您需要将应用锁定在最近的应用任务栏列表中,这样当他从任务栏中轻扫所有应用时,您的应用就不会被杀死/刷掉。
希望对您有帮助。