Cas*_*eyB 16 service android android-8.0-oreo
我的目标是sdk版本27,最低版本为19,并尝试获得在后台持续运行的服务.我尝试了不同的服务启动选项,但它仍然被应用程序杀死.我尝试使用BroadcastReceiver在它被杀死时启动该服务但是这给了我一个错误,说应用程序在后台并且无法启动服务所以我尝试使用JobScheduler并且这给了我同样的错误.应该怎么做?例如,如果我正在制作计步器应用程序,我怎么能让它在后台运行?
Khe*_*raj 27
在oreo发布中,Android定义了对后台服务的限制.
为了改善用户体验,Android 8.0(API级别26)对应用程序在后台运行时可以执行的操作施加了限制.
如果应用程序需要始终运行其服务,那么我们可以创建前台服务.
后台服务限制:当应用程序处于空闲状态时,其后台服务的使用受到限制.这不适用于前景服务,这对用户来说更加明显.
所以创建一个前台服务.在服务运行期间,您将在其中为用户发出通知.看到这个答案(还有很多其他的)
现在如果您不想要服务通知怎么办?解决方案就是这样.
您可以创建一些定期任务来启动您的服务,服务将完成其工作并自行停止.这样您的应用程序将不被视为电池耗尽.
您可以使用Alarm Manager,Job Scheduler,Evernote-Jobs或Work Manager创建定期任务.
我使用Work-Manager创建了永远运行的服务,这是完美的.
归档时间: |
|
查看次数: |
10353 次 |
最近记录: |