首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在中文ROM中运行前台服务

在中文ROM中运行前台服务
EN

Stack Overflow用户
提问于 2018-11-29 18:37:18
回答 2查看 1.2K关注 0票数 2

我做了一个前台服务,不断扫描我周围的BLE设备。出于某种原因,它似乎在我现有的安卓设备谷歌像素和三星S9+上运行得无懈可击。

但最近我用中国版的F1(一加6T,小米Poco F1)测试了这款应用,几分钟后前台服务似乎就被终止了。我已经使用workmanager重启了服务,但应用程序没有重启,我得到的是应用程序的错误报告。

同样在android 8.0(小米redmi 3s prime)以下的中国ROM设备上,简单的服务不起作用,我需要在那里使用前台服务。有没有解决这个问题的办法?

EN

回答 2

Stack Overflow用户

发布于 2018-11-29 19:08:11

要求用户将您的应用程序列入白名单。这是唯一的解决方案。即使是前台服务+唤醒锁也不起作用。

上个月有一次讨论:Workmanager reliability for periodic tasks on Chinese roms (Xiaomi, Huawei, and so on).里面有一些有用的链接,但最终你必须让用户将你的应用程序列入每个只读存储器特定的电池优化(或其他名称)设置的白名单。

票数 1
EN

Stack Overflow用户

发布于 2018-11-29 19:13:20

一个简单的方法是要求用户在应用程序开始时打开电池优化设置,让用户将应用程序放在未优化的应用程序中,使用以下代码打开设置:

代码语言:javascript
复制
    Intent batterySaverIntent=new Intent(Settings.ACTION_BATTERY_SAVER_SETTINGS);
startActivity(batterySaverIntent);

或者你可以试试这个:

代码语言:javascript
复制
  @Override
    public int onStartCommand(Intent intent, int flags, int startId) {
        return START_STICKY;
    }

    @Override
    public void onDestroy() {
        super.onDestroy();
        startForegroundService(new Intent(this, ServiceClass.class));
    }
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/53537053

复制
相关文章

相似问题

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