问题标签 [android-doze-and-standby]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
1822 浏览

android - 打盹模式暂停前台服务

我正在编写一个数据记录器应用程序,我需要每 5 分钟准确地发出一个 http 请求。用户知道电池耗尽,这对我来说没问题。我正在使用带有适当通知的前台服务,并且我有一个处理程序线程来女巫我每 5 分钟发布一次可运行的任务。似乎当手机进入打盹模式时,线程被挂起并且没有执行任何可运行的。这是正常行为还是我遗漏了什么?任何有关如何做到这一点的帮助将不胜感激。

启动线程的服务代码:

线程代码:

0 投票
0 回答
282 浏览

android - GCM 和打盹打盹模式唤醒时间

我计划使用 GCM 高优先级消息将我的设备从打盹模式中唤醒。在设备再次进入休眠状态之前,我有多少 CPU 正常运行时间?

0 投票
1 回答
7187 浏览

android - 打盹模式如何影响后台/前台服务,有/没有部分/全部唤醒锁?

这是一个简单的问题,看到 G+ 上有一篇关于此的大量帖子(此处),并且官方文档(此处)缺乏相关信息:

当设备进入“打瞌睡”模式时,应用程序的服务会发生什么?

它对后台/前台服务(绑定/未绑定,已启动/未启动)有什么作用,有/没有部分/全部唤醒锁?

例如,为了创建一个在设备屏幕关闭时播放音频流的服务,您会怎么做?如果音频流不是来自本地文件,而是来自网络怎么办?

看到有谷歌开发者声称:

一直在运行前台服务(带有相关通知)的应用程序不受打盹限制。

- 之后进行了大量讨论,声称这并不完全正确,我认为知道特殊的后台操作应用程序应该做什么是相当令人困惑的。

0 投票
0 回答
1031 浏览

android - 如何检测应用程序是否进入或退出应用程序待机模式(Android M+)

如果设备处于 DOZE IDLE 或 IDLE_MAINTENANCE 模式,如果我们为“ android.os.action.DEVICE_IDLE_MODE_CHANGED ”注册一个广播接收器,就可以接收到这些事件。但是,当使用 adb 命令使 App 进入App Standby时,此接收器不起作用。对于在 Marshmallow 及更高版本上运行的设备,我们是否可以以编程方式检查应用程序是否已进入或退出应用程序待机模式?

用于使 App 进入 App Standby 的 adb 命令

并退出

0 投票
1 回答
1346 浏览

android - 警报管理器 setRepeating 一段时间后停止工作

我知道周围有类似的问题,但没有一个对我有帮助......我正在尝试设置一个重复警报来触发广播接收器,而这又会触发一个意图服务。我知道打瞌睡模式会推迟警报,我不介意。起初警报工作正常,但一段时间后它根本没有发出。这就是我设置闹钟的方式:

接收方(WakefulBroadcastReceiver)的onreceive方法:

请注意,发生这种情况时,我看不到 SERV-RECEIVER 日志,因此即使接收器也不会被触发。我的意图服务打开一个 SQLite 数据库,做一些工作,关闭它,然后释放唤醒锁。接收者在 android manifest 中注册,没有意图:

我尝试使用 adb 命令将设备设置为打盹模式并将应用程序手动设置为待机,在我唤醒设备后它仍然可以正常工作。仅当我将其放置一段时间时才会出现此问题。使用 adb shell dumpsys 警报,我注意到这总是可见的(即使在警报停止之后

但是当问题发生时(从批处理部分),这就会消失:

我注意到在我的 android API 15 手机上,这个问题并没有发生。仅在我的 Android 棉花糖手机上...任何帮助将不胜感激 :) 谢谢

0 投票
0 回答
2512 浏览

android - Android 打盹模式和 IDLE_MODE_CHANGED 意图

我试图识别当设备进入打盹模式时我们在 Android 中获得的单个可靠回调。我尝试了以下方法:

在上面的代码示例中,当设备打瞌睡时,接收器会被多次击中。在我的试运行中,logcat 显示如下:

如果意图被多次击中,我将无法根据此意图执行我的操作。是否有任何其他意图可以用来识别进入打瞌睡的设备???

为什么这个意图会被击中这么多次???

0 投票
1 回答
5816 浏览

android - 通过 ADB 拔出设备:“找不到服务”

我必须测试我的应用在打盹模式下的行为。根据文档,我首先必须通过在终端中输入以下命令使设备认为它已拔出:

但是,什么也没发生,它会记录:

找不到服务:电池

我该怎么办?

0 投票
1 回答
4751 浏览

android - Android - 空闲时允许重复警报

我需要每 X 小时设置一个重复警报,甚至可以在打瞌睡模式下触发。但是,Android 23 的 AlarmManager 中唯一可用的 API 是 setExactAndAllowWhileIdle 和 setAndAllowWhileIdle,它们不用于重复警报。

我想知道是否应该在每次触发时重新安排警报?还是有更好的解决方案?

0 投票
2 回答
1723 浏览

android - 是否可以跟踪应用程序何时进入“Doze on the Go”(AKA Doze Light、Doze Extended 和 Doze 2)?

在 Android“N”中,Doze 已扩展为“ Doze on the Go ”。

我正在寻找一种方法来检测设备何时进入和离开这些新的轻瞌睡 IDLE 和 IDLE_MAINTENANCE 状态。(基本上与这里的常规打盹提出的问题相同。)

0 投票
0 回答
448 浏览

android - 如何以编程方式打开/关闭环境显示?

我想从我正在创建的应用程序中打开和关闭环境显示。

我遇到了这个问题,有人在问类似的问题。接受的答案是这行代码:

但我想知道这是否仅适用于环境显示,还是整个“打盹”功能?此外,问题是指 Nexus 6,但这适用于任何带有环境显示选项的 Marshmallow+ 手机吗?

谢谢!