如何在Android TV Oreo中始终运行服务/守护进程?

问题描述 投票:1回答:1

我想为Android TV平台构建一个应用程序。此应用程序的一部分是服务/守护程序,它必须在设备启动时启动,并且必须始终在Android TV启动时运行,即使在待机状态下也是如此。

为什么我希望此服务/守护程序始终运行?我的项目的一部分是便携式设备(如智能手机和/或平板电脑)的应用程序,它将通过TCP向Android TV应用程序发送命令。根据TCP消息的类型,应用程序将执行操作(打开/关闭电源设备,将我的应用程序推送到前台等)。

我尝试了不同的代码示例,但Android TV Oreo在一段时间后才会杀死此服务。我认为这些代码示例是在Android Oreo限制之前制作的。

像Kodi这样的Android TV应用程序有一个始终在后台运行的Web服务。即使在奥利奥。但我无法弄清楚他们是如何做到的。有没有人对我有一些提示?

编辑:Yatse Remote Starter为Kodi做了我想要的,我想用我的应用程序做什么。它在启动时启动,甚至在待机状态下运行。 https://play.google.com/store/apps/details?id=tv.yatse.android.remotestarter&hl=en。我仍然想知道如何,所以我也可以自己做。提前致谢!

service background-process daemon android-8.0-oreo android-tv
1个回答
2
投票

许多Android应用程序和服务同时运行。为了降低导致用户体验不佳的问题的可能性,Android 8.0应用程序具有two ways to limit what an app can do

后台服务限制:当应用程序处于空闲状态时,其后台服务的使用受到限制。这不适用于前景服务,这对用户来说更加明显。

广播限制:除了有限的例外情况,应用程序无法使用其清单注册隐式广播。他们仍然可以在运行时注册这些广播,并且他们可以使用清单注册专门针对其应用的显式广播。

因此,您需要创建ForegroundService才能继续处理您的应用。你可以查看这个问题的SO post

© www.soinside.com 2019 - 2024. All rights reserved.