Android 打瞌睡模式和前台服务

2023-12-12

我在这里读到了很多关于打瞌睡模式的问题,比如安卓打瞌睡模式, Android N Doze 模式 - 如何保持后台下载和处理?, 唤醒和打瞌睡模式还有许多其他人。但在很多回复中,意见不一。我自己无法测试(模拟器不支持我的处理器,我唯一的测试设备是android 5.1)。我想知道接下来的情况。我有一个控制媒体播放器的活动。在 Android 6.0 及更高版本的设备上,由于打瞌睡模式,它无法按预期工作。正如许多解决方案所说,为了防止打瞌睡模式,它应该在前台的单独进程中启动一个服务,并从那里控制媒体播放器。问题是:如果我在单独的进程中使用部分唤醒锁启动前台服务,除了显示通知之外什么也不做,并将控件留给我的活动中的媒体播放器,它是否应该阻止打瞌睡模式?或者除了通过窗口管理器保持屏幕打开之外还有其他方法吗?


根据这个问题并回答:

In 这个帖子9 月 17 日 Dianne Hackborn 的评论写道:

已经运行前台服务(带有相关通知)的应用程序不受打瞌睡的限制。

- Source (sec_aw)

看起来使用前台服务可以防止应用程序被 Doze 杀死。

但请注意,一些供应商(我知道三星,但可能还有其他供应商)创建了自己的 RAM 保护/电池节省工具。这些可能表现出与瞌睡完全不同的模式,并且通常还有一堆其他的障碍需要跨越。您也不能保证在这些设备上获得相同的行为 - 它们可能或多或少具有攻击性,而攻击性越大的设备往往在保持服务或其他活动方面更差。

也没有通用的方法来处理这些问题,但有人已经做了整个网站致力于展示供应商存在的问题以及潜在的解决方法。请注意,大多数有问题的供应商只提供最终用户解决方案,这意味着您(开发人员)无法在用户不做任何事情的情况下修复它。

虽然这很不幸,但这几乎就是公司实施自己的 Android 版本时发生的情况。另外,根据我自己在三星手机上的经验(主要是作为用户而不是开发人员),这些设置并不总是得到尊重,并且仍然会导致恼人的行为。

无论如何,只要 Doze 存在,前台服务就应该没问题。然而,对于其他供应商来说,所有的赌注都已落空,您将受到供应商实施某种类型的优化系统的摆布。在某些公开的操作系统上(再次参见前面链接的网站),您也别无选择,只能要求用户修复某些设置以保持功能正常运行。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Android 打瞌睡模式和前台服务 的相关文章

随机推荐

  • 使警报对话框背景透明

    我正在 Android Jelly Beans 操作系统上创建一个警报对话框 一切正常 但我想要的是 我想要透明背景 而不是警报对话框的黑色背景 我在 stackoverflow 上读了很多文章和用户的问题 但没有一个能帮助我 这是我的代码
  • 向 VBA HTTP Post 请求添加参数

    我想从网络服务请求令牌 它要求我使用授权代码发出 HTTP POST 请求 我需要在我的请求中包含此代码以及其他参数 我在网上找到的任何详细信息都将 Java 中的请求格式化如下 所有 ID 都是伪造的 POST services oaut
  • JavaScript生成不重复的随机数

    我有一些代码 其中有 x 个项目的数组 在这种情况下 视频 我想随机调用一个视频 但是如果当前已调用的视频与随机数相同 我希望它生成另一个随机数 直到它是唯一的 这是我的代码 var videoLinks
  • 当我使用 RecyclerView 和 SwipeRefreshLayout 在 MotionLayout 中做一些动画时,事情变得很奇怪

    当 RecyclerView 向上拖动时 我使用 MotionLayout 来实现一些很酷的效果 但看起来当我想将 SwipeRefreshLayout 与 RecyclerView 一起使用时 事情会发生冲突 如果没有 SwipeRefr
  • Podio:设置 DateTime 字段值时使用哪个时区

    使用 Podio API 创建新项目或更新现有项目时 并将 DateTime 字段值设置为 2016 10 21 14 15 00 例如 哪个时区将用于存储此日期时间 E g request app id
  • CSS :checked - 更改 背景

    使用CSS 是否可以改变background color整个的 tr 基于是否 tr
  • iOS - swift 3 - DispatchGroup

    我创建了这个基本架构来处理我的网络事务 我想保持它的模块化和结构化 public class NetworkManager public private set var queue DispatchQueue DispatchQueue l
  • openfire 支持用户/联系人阻止吗?

    openfire 支持用户 联系人阻止吗 我正在创建一个基于 XMPP 的聊天 现在我希望我的用户拥有一个可以主动阻止某个人与他们聊天的工具 我知道 XMPP 已经定义了一个扩展 通信阻止 在隐私列表 XEP 0016 中定义 以及隐私列表
  • JdbcPagingItemReader 不适用于联接查询

    我有两个表表 1 和表 2 两者具有相同的名称id column 由于它是左外连接查询 因此我必须使用别名 在 sortKeys 中 如果我提到id 误差为 Caused by org postgresql util PSQLExcepti
  • 如何在不使用 Javascript 的情况下防止 .NET MVC 中的多个表单提交?

    我想防止用户在 NET MVC 中多次提交表单 我已经尝试了几种使用 Javascript 的方法 但很难让它在所有浏览器中工作 那么 如何在我的控制器中防止这种情况发生呢 是否有某种方法可以检测到多次提交 更新了 ASP NET Core
  • R Leaflet 离线地图图块未加载

    我需要帮助尝试找出为什么使用本地保存的地图图块的传单地图无法正常工作 我正在尝试重新创建示例here根据本地保存的地图图块创建传单地图 但是 当我创建它时 背景地图图块不会加载 我的代码基本上直接来自示例 但针对我的目录进行了更新 并更新以
  • Objective-C 构建中出现重复符号错误?

    当我按构建 调试时出现此错误 ld duplicate symbol objc class name BlogTableItemCell in Users fabian Development Workspaces iphone exper
  • 在 TBIMP 编辑的 dll 之后手动生成 ActiveX 包装器?

    我有几个需要从 C 项目访问的 ActiveX 组件 我可以通过 Visual Studio 的添加引用对话框导入它们 该对话框还将自动生成包装类 IE ABCLib and AxABCLib 我知道我可以通过运行手动生成主互操作程序集TL
  • C#:如何使用 IReadOnly 字典实现接口,其中包含来自包含具体值的具体字典的接口值

    在我的代码中 我声明内部类和公共接口 并且有一种情况 我想公开一个带有包含接口类型值的 IReadonlyDictionary 的接口 但我想用具有带有值的 Dictionary 的类来实现它具体类型 我需要这个 因为我正在将一些 JSON
  • 迁移到 Team Foundation Server

    我们有一台安装了 TFS 的新服务器 当前的环境非常平常 源代码使用SourceSafe 2005 进行管理 并与Visual Studio 2008 企业版集成 QA 团队正在使用 Bugzilla 来报告错误 首先是一些基本问题 我怎样
  • 使用 softmax 激活的二元分类始终输出 1

    对于问题的质量感到抱歉 但这里是初学者 我只是想用泰坦尼克号数据集试试运气 但它总是预测乘客死亡 我尝试解释下面的代码 import matplotlib pyplot as plt import numpy as np import pa
  • 如何在同一个类的另一个方法中调用一个方法的变量

    我正在尝试访问同一类的另一个方法中的方法的变量 但由于某种原因它什么也不打印 class Colors def blue self var This is blue def red self b self blue print b var
  • 来自非嵌套/同级目录的 Mercurial 子存​​储库?

    是否可以使用同级路径创建子存储库 Subversion 是我们 选择的 版本控制系统 但我已经遇到了一些过时提交的问题 对我来说 在 Hg 和 SVN 下双重版本我的文件要方便得多 而且我已经取得了巨大的成功 然而 我还有其他一些同事使用汞
  • CUDA:将相同的内存位置流式传输到所有线程

    这是我的问题 我有相当大的双精度数集 它是一个包含 77 500 个双精度数的数组 要存储在 cuda 中的某个位置 现在 我需要一大堆线程来顺序地对该数组执行一系列操作 每个线程都必须读取该数组的相同元素 执行任务 将结果存储在共享内存中
  • Android 打瞌睡模式和前台服务

    我在这里读到了很多关于打瞌睡模式的问题 比如安卓打瞌睡模式 Android N Doze 模式 如何保持后台下载和处理 唤醒和打瞌睡模式还有许多其他人 但在很多回复中 意见不一 我自己无法测试 模拟器不支持我的处理器 我唯一的测试设备是an