首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >android oreo的永久服务

android oreo的永久服务
EN

Stack Overflow用户
提问于 2017-11-13 18:00:27
回答 2查看 2.3K关注 0票数 4

Android 8的电池消耗改善对用户来说是件好事,但我有点担心我的服务是否会像预期的那样工作。

首先,谢谢你的建议,但我不能只是安排我的服务。我想让OK Google-like关键字侦听器一直在后台运行。它将基于开源的pocketsphinx-android库。我知道这将消耗大量的电池能量,我会通知用户这一点。

我们能在android 8+上创建一个永久的后台服务吗?我需要针对gradle中的android 8,因为我预期会有一些老目标的bug。我也不想用前台服务永久显示状态栏中的通知来激怒用户。

[https://developer.android.com/about/versions/oreo/background.html] -真的没有办法为我的用例(但最好是所有用例)提供永久的后台服务吗?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2017-11-13 20:55:52

不幸的是,不能使用后台服务,也不能在Android8.0和更高版本上显示前台通知。

唯一可行的方法就是把你的应用程序贴在Google上,比如语音动作API

据我所知,目前还没有一个很好的解决方案,大多数像WhatsApp这样的应用程序还在运行Android 24。

票数 6
EN

Stack Overflow用户

发布于 2018-06-15 13:20:04

值得的是,我要分享我在这方面的经验:

部分可以使用后台服务,而不能在Android8.0上显示前景通知,只是做了一些实验,最后得到了如下结果:

只需使用创建通知通道,通知仍然存在,但不会显示在状态栏中。

代码摘录:

代码语言:javascript
复制
NotificationChannel channelService = new NotificationChannel(
    YOUR_SERVICE_CHANNEL_ID,
    YOUR_CHANNEL_HUMAN_READABLE_NAME,
    NotificationManager.IMPORTANCE_NONE);

channelService.setSound(null, null); // let's be quiet : no sound
channelService.setLockscreenVisibility(Notification.VISIBILITY_SECRET); // not on lock screen

// Register the channel with the system; you can't change the importance
// or other notification behaviors after this
// changes needs to uninstall app or clean app data, or rename channel id!
notificationManager.createNotificationChannel(channelService));

这样,当应用程序在前台运行时,通知将不会显示。

不是一个完美的解决方案:

当您的应用程序进入后台(即打开另一个应用程序)时,"Android系统“应用程序会显示”(您的)应用程序正在后台运行的通知“。所以,这不是很好,但是,在我看来,它比以前要好一些。

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

https://stackoverflow.com/questions/47270691

复制
相关文章

相似问题

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