首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Android服务在OPPO Xioami MIUI vivio等设备上停止工作

Android服务在OPPO Xioami MIUI vivio等设备上停止工作
EN

Stack Overflow用户
提问于 2019-04-25 17:28:19
回答 1查看 196关注 0票数 0

我正在使用前台服务来跟踪用户的位置,但它在OPPO VIVO和XIOAMI MIUI等少数设备上停止了。

在读了一些文章后,我尝试了一些东西,比如OPPO 1:打开Startup Manager 2:关闭后台冻结,异常应用优化和打瞌睡

我想在后台运行我的服务。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-04-25 17:38:14

嗯,这在所有的中国设备上都会发生,因为他们使用定制的操作系统来优化他们的电池性能。这就是为什么当应用程序被终止时,操作系统会在后台终止每个进程。你只需要做几件事就可以让你的服务在后台运行。

首先打开启动功能,因为你已经这样做了。您也可以通过代码来实现这一点。

代码语言:javascript
复制
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);
        }
    }

其次,您需要将应用程序锁定在最近的应用程序托盘列表中,这样当他从托盘中滑动所有应用程序时,您的应用程序就不会被杀死。

我希望它能对你有所帮助。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/55845994

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档