首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

Android O:服务未因后台执行限制而停止

Android O引入了一项新的功能,即后台执行限制。这项功能旨在优化设备的电池寿命和性能。在Android O及更高版本中,系统对后台服务的执行进行了限制,以减少不必要的资源消耗。

具体来说,Android O对后台服务的限制主要包括以下几个方面:

  1. 后台执行限制:Android O对后台应用的执行时间进行了限制,如果应用在后台执行超过一定时间(例如几分钟),系统会认为该应用处于非活动状态,并停止其后台服务。
  2. 后台位置更新限制:Android O对后台应用的位置更新进行了限制,如果应用在后台频繁请求位置更新,系统会限制其更新频率,从而减少电量消耗。
  3. 后台广播限制:Android O对后台应用的广播进行了限制,如果应用在后台频繁发送广播,系统会限制其广播的接收范围,从而减少资源消耗。

这些限制的目的是为了提高设备的电池寿命和性能,但也可能会对某些应用的功能造成影响。为了适应这些限制,开发者可以采取以下措施:

  1. 使用前台服务:前台服务是一种可以在通知栏显示通知的服务,可以避免被系统限制。开发者可以将一些需要在后台执行的任务放在前台服务中进行处理。
  2. 使用JobScheduler:JobScheduler是Android提供的一种调度任务的机制,可以在特定条件下执行任务,例如设备连接到充电器、设备空闲等。开发者可以使用JobScheduler来替代后台服务执行一些任务。
  3. 优化应用逻辑:开发者可以优化应用的逻辑,减少后台执行的频率和时间,从而降低对系统资源的消耗。

总结起来,Android O的后台执行限制是为了优化设备的电池寿命和性能。开发者可以通过使用前台服务、JobScheduler以及优化应用逻辑来适应这些限制。腾讯云提供了一系列与移动开发相关的产品,例如移动推送、移动分析等,可以帮助开发者更好地管理和优化移动应用。具体产品介绍和链接地址可以参考腾讯云移动开发相关页面。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

Android O 行为变更官方指南

(https://developer.android.google.cn/topic/security/index.html) 后台执行限制 Android O 为提高电池续航时间引入的变更之一是,当您的应用进入已缓存状态时...此外,为提高设备性能,系统会限制未在前台运行的应用的某些行为。具体而言: 现在,在后台运行的应用对后台服务的访问受到限制。 应用无法使用其清单注册大部分隐式广播(即,并非专门针对此应用的广播)。...Android O 还对特定函数做出了以下变更: 如果针对 Android O 的应用尝试在不允许其创建后台服务的情况下使用 startService ( ) 函数,则该函数将引发一个 IllegalStateException...不过,应用必须在创建服务后的五秒内调用该服务的 startForeground ( ) 函数。 如需了解详细信息,请参阅以下链接中的后台执行限制。...),因为这会导致堆栈无限递归溢出。

1.6K20

Android O 新特性和行为变更总结

2.1 后台执行限制 Android O 在当进程进入已缓存状态时,如果没有活动的组件,系统将解除应用具有的所有唤醒锁(已缓存状态指的是没有前台 Activity 或者正在执行的前台 Service)...同时 Android O 上运行在后台的应用将会有限制的使用后台的 Service,并且应用也不能在 Manifest 中注册一些不必要的隐式广播用来进行自启等操作: 在后台运行的应用对后台服务的访问受到限制...上面的限制针对 targetApi 为 O 和之上的应用生效,但是用户可以在设置页面设置让这个限制对所有 targetApi 的应用生效。 处于前台时,应用可以自由创建和运行前台服务后台服务。...消息; 但是在该时间窗结束后,应用将被视为处于空闲状态, 此时系统将停止应用的后台服务,就像应用已经调用服务的 Service.stopSelf() 方法一样。...新的 API 适用于需要暂停不是闪避的应用。不过,Android O提供此行为。

3K20

Android O 新特性和行为变更总结

2.1 后台执行限制 Android O 在当进程进入已缓存状态时,如果没有活动的组件,系统将解除应用具有的所有唤醒锁(已缓存状态指的是没有前台 Activity 或者正在执行的前台 Service)。...同时 Android O 上运行在后台的应用将会有限制的使用后台的 Service,并且应用也不能在 Manifest 中注册一些不必要的隐式广播用来进行自启等操作: 在后台运行的应用对后台服务的访问受到限制...上面的限制针对 targetApi 为 O 和之上的应用生效,但是用户可以在设置页面设置让这个限制对所有 targetApi 的应用生效。 处于前台时,应用可以自由创建和运行前台服务后台服务。...消息; 但是在该时间窗结束后,应用将被视为处于空闲状态, 此时系统将停止应用的后台服务,就像应用已经调用服务的 Service.stopSelf() 方法一样。...新的 API 适用于需要暂停不是闪避的应用。不过,Android O提供此行为。

1.2K30

Android O 后台startService限制简析

Android O 推出出了Background Execution Limits,减少后台应用内存使用及耗电,一个很明显的应用就是不准后台应用通过startService启动服务,这里有两个问题需要弄清楚...本文基于Android P源码 通过自己应用在后台startService限制 可以通过一个简单的实验观察什么情况属于后台startService,注意:如果是自己APP启动Service,那么自身应用必定已经起来了...,应用启动的不考虑,启动肯定也属于”后台“的一种极端。...Launcher冷启动没问题,如果我们在后台杀死APP,由于存在一个stop的服务,系统会重新拉起该服务,也就是会重启一个进程,然后启动服务。...作者:看书的小蜗牛 Android O 后台startService限制简析 仅供参考,欢迎指正

12.3K30

android Service漏洞挖掘

Service安全场景和危害 Service是android四大组件之一,一个Service是没有界面且能长时间运行于后台的应用组件。...其他应用的组件可以启动一个服务运行于后台,即使用户切换到另一个应用也会继续运行。另外,一个组件可以绑定到一个service来进行交互,即使这个交互是进程间通讯也没问题。...例如,一个service可能处理网络事物,播放音乐,执行文件I/O,或与一个内容提供者交互,所有这些都在后台进行。...如果一个导出的Service没有做严格的限制,任何应用可以去启动并且绑定到这个Service上,取决于被暴露的功能,这有可能使得一个应用去执行授权的行为,获取敏感信息或者是污染修改内部应用的状态造成威胁...当service又返回数据的时候,判断数据接收app是否又信息泄露的风险。 有明确的服务需调用时使用显示意图。 尽量不发送敏感信息。

87410

Android 开发艺术探索笔记二

一个应用处于停止有两种情形: 应用安装后运行 应用被手动或其他应用强停了 从android3.1开始,处于停止的应用无法接收到开机广播 在broadcastIntentLocked内部,根据intent-filter...** 使用场景Intentservice,不需要使用handlerThread时,使用quit,quitsafely终止执行。 IntentService执行后台耗时任务,当任务执行后它会停止。...当onHandlerThread方法执行结束后,IntentService采用stopSelf(int startId)来尝试停止服务,而使用stopSelf()方法则会立刻停止所有服务stopSelf...(int startId)等待所有消息都处理完毕后才会终止,尝试停止服务之前判断最近启动的服务次数是否与startId相等,相等则停止。...线程池 线程池优点 重用线程池,避免线程创建与销毁而带来的性能开销 有效控制线程的并发数,避免线程互相抢占资源导致阻塞现象 能够对线程进行简单管理,提供定时执行与间隔循坏功能 Executor Executor

1.8K10

Android入门教程 | 四大组件之Service(前台服务后台服务

Service是一种可在后台执行长时间运行操作不提供界面的应用组件。服务可由其他应用组件启动,而且即使用户切换到其他应用,服务仍将在后台继续运行。...此外,组件可通过绑定到服务与之进行交互,甚至是执行进程间通信 (IPC)。 例如,服务可在后台处理网络事务、播放音乐,执行文件 I/O 或与内容提供程序进行交互。...: Bad notification for startForeground 后台服务 后台服务执行用户不会直接注意到的操作。...Service是什么 Service 是 Android 四大组件之一,它可以在后台执行长时间运行操作没有用户界面的应用组件。...Intent 添加到队列中; IntentService 不会阻塞UI线程,普通 Serveice 会导致 ANR 异常 Intentservice 若执行完成上一次的任务,将不会新开一个线程,是等待之前的任务完成后

4.6K30

Android 8.0 新特性适配测试报告来啦!

测试版本:Android 8.0 一、安装启动测试 Android O中权限设置新增安装限制功能,即每个APP的「安装未知应用」功能将默认被限制,避免关联应用自动安装的问题,特别是针对一些流氓应用比较有效...四、后台进程限制 安卓系统越用越卡、电池寿命的问题一直是用户使用的痛点,谷歌表示一直在优化安卓Android后台应用限制策略,以最大程度减小后台应用对电池的消耗和对资源的占用。...Android O 对隐式广播、后台服务和位置更新等进行了后台自动限制,以此来减少后台数据使用、增加手机电池寿命。...这里选取了几个常用软件,用Cube工具抓取了后台运行时相关性能数据进行了对比,结果如下: 测试结论 从上面数据看来,Android8.0系统比Android7.0系统的后台运行程序限制并不明显,仅仅在数值上有微小的提升...六、暂时结论 Android8.0系统环境下,安装启动测试项兼容性较好;画中画模式中会出现视频自动暂停播放、其他同时运行的应用卡顿甚至提示无响应的兼容性问题;通知圆点功能暂时与目前线上应用不兼容;后台进程限制的体验效果

2.3K00

更强续航,尽在 Android 9 Pie

Job Scheduler 推迟任务执行时间; 从 Android 6.0 Marshmallow 起,当用户一段时间没有使用设备或应用时,设备会进入省电模式或低耗电模式,此时系统会暂停网络访问,并推迟同步和其它后台作业...Android 8.0 Oreo 引入了后台限制 (Background limits),以阻止应用在后台运行服务并降低应用获取设备地理位置更新的频率。...为了达到这些目的,Android 引入了应用待机分类和后台限制这两项特性,同时优化了原有的省电助手功能。建议开发者在已启用以上特性的 Android 9 Pie 设备上对应用进行相关测试。...省电助手和省电模式能对系统进行全局优化,动态电量管理 (由 DeepMind 机器学习驱动的应用待机分组) 和后台限制则只能在应用层面进行电量管理。...对于开发者而言,能否将资源分配至正确的设计模式和架构上至关重要,为此,我们建议您在开发过程中采纳以下策略: 1.确保用户正在使用的应用完成必要的工作 2.允许推迟后台工作或任务 3.使用前台服务,但允许用户通过点击消息通知停止正在运行的前台服务

1.4K40

俄罗斯关键基础设施「禁止使用」外国软件:诸如医疗、通信、交通、能源、金融、市政设施等

根据法令,任何客户(地方政府参与的组织除外)如果没有获得"俄罗斯联邦政府授权的执行机构"的批准,不能购买用于"俄罗斯联邦关键信息基础设施"的外国软件,也不能购买"运行此类软件所需的服务"。...MongoDB 停止俄罗斯业务,包括其 SaaS 服务 乌克兰称:华为、中兴、联想已停止俄罗斯业务 JetBrains 停止俄罗斯、白俄罗斯的销售和研发活动 谷歌云:停止在俄罗斯接受新客户 Docker...思科、IBM 停止俄罗斯业务 埃森哲停止俄罗斯业务:裁掉 2300 名员工 Oracle暂停俄罗斯所有业务 GitHub:严格限制俄罗斯获取维持其侵略性军事能力所需要的技术 俄罗斯开发人员或制裁而无法使用开源软件...美国宣布全面限制对俄罗斯技术出口:旨在切断俄罗斯获取半导体、计算机、激光和电信设备等外国产品的渠道 Nginx现在是全球头号Web服务器系统,超过Apache!...NGINX 和 Citrix 收购价格谈拢,6.7 亿美元出售给 F5 Rambler 起诉 F5 索赔 7.5 亿美元:称对其员工开发的 NGINX 技术拥有所有权

49320

Android 各版本特性

目前很多APP开发者们对Android O的一些后台限制行为不太了解这些变更,遇到问题可能误以为系统问题,所以这里说到这顺便提一下关于Android O后台行为的一些管控。...后台服务(Background Service)限制 当进程处于后台1分钟后会进入idle状态,系统停止后台服务,也就意味着应用处于后台必须1分钟内处理完收尾工作,不允许在后台长时间监控系统,从而节省功耗...;对于应用后台执行用户不可感知的操作,官方推荐使用JobScheduler 后台进程不允许通过startService方式启动服务,否则当targetSdk>=26的情况下会抛出IllegalStateException...Android O新增startForegroundService(),用于启动前台服务,但有一个限制条件就是应用必须服务启动后5秒之内调用startForeground(),否则会抛出ANR 广播(Broadcast...PMS在Android O主要改动是优化启动时间,将操作尽可能并行化执行,在Android P上主要改动是扫描过程scanPackageOnly(), 下一步提取更多的子组件和类,比如Intent resolution

1.3K10

谷歌大开“吃”戒的产物,Andriod O全球发布

后台限制Android O在以下三大方面对哪些应用可以在后台运行进行了额外的自动限制:隐式广播、后台服务和位置更新。 多个 Android 应用和服务可以同时运行。...为了降低发生这些问题的几率,Android O 对应用在用户不与其直接交互时可以执行的操作施加了限制。 如果应用针对 Android O,那么它会通过以下两种方式受到限制。...后台服务限制:处于空闲状态时,应用可以使用的后台服务存在限制。 这些限制不适用于前台服务,因为前台服务更容易引起用户注意。 广播限制:除了有限的例外情况,应用无法使用清单注册隐式广播。...为降低功耗,无论应用的目标 SDK 版本为何,Android O Developer Preview 都会对后台应用检索用户当前位置的频率进行限制。...如果服务未在执行容易立即被用户注意到的操作,一般情况下,您都能够使用计划作业。 ④发生网络事件时,请使用 FCM 选择性地唤醒您的应用,不是在后台轮询。 ⑤在应用正常处于前台之前,请推迟后台工作。

88920

Android内存管理(六)Android对Linux系统的内存管理机制进行的优化

Linux系统在进程活动停止后就结束该进程,Android系统则会在内存中尽量长时间的保持应用进程,直到系统需要更多内存为止 。...尽管服务进程与用户所见内容没有直接关联,但是它们通常在执行一些用户关心的操作(例如,后台网络上传或下载数据)。...内存管理中对于前台/后台应用的定义,与用于Service限制目的的后台应用定义不同。...从Android 8.0开始,出于节省系统资源、优化用户体验、提高电池续航能力的考量,系统进行了前台/后台应用的区分,对于后台service进行了一些限制。...然而现实是,很多应用多多少少都会有一些后台工作线程,这可能是开发人员经验不足导致(比如线程关闭或者循环发送的Handler消息停止),也可能是为了需求而有意为之,导致整个Android应用的生态环境并不是一片干净

1.6K10

Android 8.0新特性适配测试报告来啦!

WeTest 导读 谷歌2017 I/O开发者大会上发布了Android 8.0的正式版, 其官方代号为Oreo(奥利奥)。...测试版本:Android 8.0 安装启动测试 Android O中权限设置新增安装限制功能,即每个APP的「安装未知应用」功能将默认被限制,避免关联应用自动安装的问题,特别是针对一些流氓应用比较有效...后台进程限制 安卓系统越用越卡、电池寿命的问题一直是用户使用的痛点,谷歌表示一直在优化安卓Android后台应用限制策略,以最大程度减小后台应用对电池的消耗和对资源的占用。...Android O 对隐式广播、后台服务和位置更新等进行了后台自动限制,以此来减少后台数据使用、增加手机电池寿命。...测试结论 从上面数据看来,Android8.0系统比Android7.0系统的后台运行程序限制并不明显,仅仅在数值上有微小的提升,普通用户在正常使用时没有明显感受。

1.1K40

Android四大组件之Service

1.简介与定义 简介 Service是一个可以在后台执行长时间运行操作不提供用户界面的应用组件。Service可由其他应用组件启动,而且即使用户切换到其他应用,Service仍将在后台继续运行。...例如,Service可以处理网络事务、播放音乐,执行文件 I/O 或与内容提供程序交互,所有这一切均可在后台进行。 定义 Service是一个专门在后台处理长时间任务的 Android组件。 1....onDestroy() 在销毁的时候会执行Service的该方法。 这几个方法都是回调方法,且在主线程中执行,由Android操作系统在合适的时机调用。...启动了之后,当我们想停止服务的时候该怎么做呢?...8.如何保证服务不会被杀死 第一种方式,返回 START_STICKY 或 START_REDELIVER_INTENT 当 Service内存不足被系统kill后,一段时间后内存再次空闲时,系统将会尝试重新创建此

81210

应用保活终极总结(二):Android6.0及以上的保活实践(进程防杀篇)

由于篇幅限制,本文主要剖析下通过何种方式降低oom_adj的值来降低APP被杀的几率,以及oom_adj值是怎样做到的?...接下来,我们需要了解下Android系统回收内存中的进程所依据的规则: 进程在内存中时活动主要有五种状态:即前台进程、可见进程、服务进程、后台进程、空进程,这几种状态的进程优先级由高到低,oom_adj...当"咕咚"处于停止状态,退到后台,锁屏进入黑屏状态,等待5分钟,进程死亡,通知栏被清除; b. 当"咕咚"处于运动进行状态,退到后台,锁屏进入黑屏状态,然后再进入系统,“咕咚”跑步界面自动弹出。...当"乐动力"处于停止状态,退到后台,锁屏,等待5分钟,进程死亡,通知栏被清除; b....和1像素,KeepAppAlive在黑屏后台模式下存活9个小时以上,看样子原生系统还是温柔些;开启后台播放音频服务,用户一键清理最近应用成功保活; 3)华为4X(Android 6.0):效果同C9;

3.9K21

【科技】Google推出首个Android P开发者预览版

与去年不同的是,Android P上没有用于测试Android Wear的模拟器。 ? Google已经连续第三年在其I/O开发者大会前的几个月,发布下一个主要Android版本的首个开发者预览版。...Android N(后称为Android Nougat)和Android O(后称为Android Oreo)的首个开发者预览版分别在2016年3月和2017年3月发布。...如果你想要简短版本,以下是首个Android P开发者预览的亮点:内置支持显示图样(读取:凹槽)、调整的快速设置面板,带圆角的通知抽屉,回复内联时的通知消息,通知中的智能回复,用于指纹验证的一致UI,以及限制应用程序在后台执行的隐私增强功能...运营商可以将网络报告为拥塞或计量,JobScheduler则根据网络状态管理工作。...用户隐私: 从空闲应用程序访问麦克风,摄像头和所有SensorManager传感器将受到限制。当你的应用程序的UID空闲时,麦克风报告空的音频和传感器停止报告事件。

1.3K60

Android后台保活实践总结:即时通讯应用无法根治的“顽疾”

涉及到省电和内存管理策略,各厂商基于自家的理解,在自已ROOM发布时都会对标准Android发行版作或多或少的改动,使得应用层程序在处理进程和Service保活问题上变的异常复杂,且很难兼容,因为说不定哪款手机或者哪个版本的省电策略发生改变...最难绕过的是个厂商对“后台程序保活”管理。 本文主要把相应的实践结果和保活方法进行总结。然而,笔者可用的测试真机有限,可能存有不完整的地方,还请及时提出指正并补充,大家共同进步。...其中有的后台程序保护把程序结束的同时会把程序弄成停止状态,导致无法接收广播! 我们的保活方案有哪些?...我的测试方法是在“设置”-> 应用管理-> 正在运行-> 停止服务。(这个是正常停止服务,会触发onDestory,所以上面的onStartCommand效果不会触发。)...2)双服务我觉得没有native守护进程来的好,虽然360,微信什么的都有几个进程服务,但如果不添加到后台保活的话,效果一样不能保活,也会进入停止状态。

2.2K30
领券