问题标签 [sleep-mode]

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 投票
2 回答
1852 浏览

java - Windows 10 上的 Java Thread.sleep() 在 S3 睡眠状态下停止

有一个桌面应用程序使用 Thread.sleep() 来实现长时间(几分钟或几小时)的延迟。从 Windows XP 到(至少)Windows 7,这个相同的应用程序一直运行良好。该应用程序计算它需要在未来多长时间内做某事,然后点击 Thread.sleep(msToWait)。即使系统在等待期间碰巧进入 S3 睡眠状态,这也能正常工作。

但是,从 Windows 10 开始,如果机器处于 S3 中,则 Thread.sleep() 之后的代码不会“按时”执行。机器似乎在“msToWait”加上机器在 S3 中的时间开始执行代码(现在不是 100% 肯定,但很可能)。

早期版本的 Windows 没有表现出这种行为;Thread.sleep() 之后的代码等待了适当的时间,而与睡眠状态无关。

测试已在当前的 JVM 1.7 上进行。

这是 Windows 10 的错误吗?这是一个 JVM 错误吗?有解决办法吗?

附加数据:

开发了一个测试程序和程序。该过程是运行程序,使机器休眠大约一分钟,然后唤醒机器并等待程序完成。

如果此程序在 JVM 版本为 25.40-b25 的 Windows 10(报告为 8)上运行,则会失败:

如果该进程在 Windows 7 上运行,它不会失败。

这是测试程序:

我意识到我可以尝试各种其他方法来睡觉,但我认为既然我经历并记录了这一点,我会在尝试其他事情之前将其发布在这里。

附加信息:此故障似乎也出现在 Windows 8(但不是 7 或更早版本)中。

补充 2019 年 4 月 4 日

该问题在 bugs.java.com 上的以下 URL [JDK-8221971][1] 上可见。

有一些早期的错误与该错误相关联。来自链接 JDK-8146730 错误的评论:

17-04-2017 关于这个话题有什么消息吗?

04-04-2019 它已被推迟。这是一个低优先级且复杂的问题,没有人主动分配给它。

2021 年 2 月 17 日补充

这可能是由于 Windows 操作系统响应超时的编程方式发生了变化。即使直接使用 Windows API,我也不确定如何实现使新旧 Windows 操作系统的行为相同的目标。

Windows XP、Windows Server 2003、Windows Vista、Windows 7、Windows Server 2008 和 Windows Server 2008 R2:dwMilliseconds 值确实包括在低功耗状态下花费的时间。例如,当计算机处于睡眠状态时,超时确实会继续倒计时。

Windows 8、Windows Server 2012、Windows 8.1、Windows Server 2012 R2、Windows 10 和 Windows Server 2016:dwMilliseconds 值不包括在低功耗状态下花费的时间。例如,当计算机处于睡眠状态时,超时不会继续倒计时。

https://docs.microsoft.com/en-us/windows/win32/api/synchapi/nf-synchapi-waitforsingleobjectex

0 投票
0 回答
499 浏览

android - 后台的 Cordova 应用程序在 Android 上具有奇怪的行为

我正在开发一个 Cordova 应用程序,该应用程序需要每 10 秒后将用户的当前位置发送到服务器。为此,我正在使用Geolocation 插件。这是我的代码片段:

当应用程序在前台时一切正常,即应用程序获取存储在 gLat 和 gLng 变量中的位置,并每 10 秒将其发送到服务器。但是当进入后台并且手机处于睡眠模式时,它会表现出一些奇怪的行为。奇怪的是,它不是updateLocationToServer()每 10 秒调用一次,而是每分钟调用一次,有时情况会变得更糟。我不知道在睡眠模式下 10 秒是如何被解释为一分钟的。我想知道这种延迟的可能原因是什么?我的应用程序主要是针对出租车司机的,并且想一直跟踪他们。客户的整个业务都取决于这件事,就像成败一样。请提出您的建议。

编辑:我的客户正在使用 3G 和 4G 网络来测试应用程序。

0 投票
1 回答
148 浏览

c# - 防止关机并用睡眠代替它

作为网络管理员,我尝试在数周内使所有计算机保持睡眠状态(而不是关机),因为我可以安排一项任务来唤醒计算机,从而维护/检查它们,而无需将物理移动到其他地方.

但有时用户只是自己关闭计算机。所以我被困住了,需要搬到那里......

我想以编程方式(C#): - 检测/捕获 Windows 关机 - 执行一种“shutdown -a”来取消它。- 计划在任务调度程序中唤醒 - 最后,使用 SLEEP 关闭计算机而不是关机。

基本上,我的目标是用睡眠替换关机,这样它就会在计划任务中唤醒。谁能启发我一些可能性?

我尝试过的:用这个创建了一个windows窗体:

它会引发错误,因为系统正在处理关闭,因此我无法再运行 cmd。

0 投票
0 回答
1512 浏览

android - 当 android 进入深度睡眠模式时,活动套接字会发生什么?

我的套接字连接出现了一些问题,我可以让应用程序在后台运行并重新进入,一切正常。当我打开多个应用程序以耗尽设备内存时,我的应用程序及其服务会被终止,当我返回它时,一切都会按预期重新创建。到目前为止没有任何问题。当我不这样做时,当我让我的应用程序在后台运行并且只是长时间关闭屏幕(15 分钟)时,就会出现问题。我有一个活的套接字连接,它生活在一个显然被“断开”的服务上。服务本身不会被杀死。我确信这一点,但连接停止响应某些方式。

我怀疑深度睡眠应该归咎于两个原因。1.这在模拟器上永远不会发生。2. 通过 USB 插入时,我的设备不会发生这种情况。

我可能错了,但我想知道这是如何工作的。我找不到太多关于此的文档。我想知道设备何时即将进入睡眠模式,这样我就可以自己终止服务(所以当它重新创建时,套接字也会)

我正在使用firebase顺便说一句。:)

0 投票
2 回答
509 浏览

android - Android kitkat 睡眠模式下的闹钟管理器

kitkat当设备处于睡眠模式时,我在警报管理器中遇到版本问题。

警报没有唤醒设备 >>> 当我连接到 wifi 或为电池充电时,一切正常

有什么建议么 ..

我的警报管理器

0 投票
1 回答
174 浏览

android - Android 从睡眠模式唤醒会导致 HTTP 调用的 ClientProtocolException

当您按下电源按钮恢复屏幕时,设备进入“睡眠”或省电模式(屏幕变黑),一切看起来都很好并且功能正常。但是,当我尝试进行任何 HTTP 调用(使用DefaultHttpClient)时,我会遇到ClientProtocolException异常。然后我必须退出应用程序并返回,一切正常。我知道有新的 URLConnection 包可用,但重构需要一些时间。有什么办法可以纠正这个吗?

这是一个失败的代码示例,但同样,它工作得很好,直到设备休眠:

这是我失败的堆栈跟踪。

注意:这不会仅在屏幕进入睡眠状态时发生......也是时间因素(超过 10 分钟空闲)。认为这可能与由于闲置而从内存中提取的东西有关吗?提前致谢!

0 投票
1 回答
345 浏览

interrupt - Contiki 中的 TelosB GPIO 中断

有没有人有一个简单的例子,它显示了如何使用 Contiki 在 TelosB 上处理外部中断。例如,当按下按钮时,MSP430 微控制器会从深度睡眠模式中唤醒,它会执行一些操作,然后切换回深度睡眠。代码片段会很有帮助。

0 投票
1 回答
593 浏览

android - 当设备进入睡眠状态时,android是否会杀死客户主页启动器应用程序

我正在制作一个 Kiosk 应用程序。我将我的应用程序设置为默认启动器。该应用程序每天上午 8:00 到晚上 11:00 自动运行,然后进入睡眠状态,直到下一个上午 8:00。我想知道当设备进入睡眠状态时,android 会杀死我暂停的应用程序吗?如果可以,我应该如何预防?

0 投票
0 回答
374 浏览

android - Android后台位置更新

我构建了应用程序,它使用服务和广播接收器在后台向服务器提供位置更新。我放置了运行位置方法的计时器(每 X 分钟运行一次)。它包括获取纬度、经度和使用 API 调用更新到服务器。我有一个问题和疑问。有一个清单。

1.当设备处于待机模式或睡眠模式时,我的计时器进入睡眠状态

2.如果用户上次位置和当前位置距离 500 米或更大,我必须更新位置。

3.我想知道多少分钟或秒的设备进入睡眠模式?

4.我的计时器在运行 devoce 模式下运行比为什么在设备睡眠模式下停止或睡眠更好?

我的计时器任务

计时器运行的正确方法是什么?如果是,那么为什么它在设备处于待机模式或睡眠模式时睡眠?

帮帮我,我搜索了很多网站,但无法得到它。提前致谢

0 投票
2 回答
1639 浏览

c++ - Windows 在运行较长的 C++ Visual Studio 程序时休眠

我使用的是 Windows 8.1、Visual Studio 2013,并且我有一个运行超过 15 分钟的 C++ 项目。但问题是,当我仍在调试时,Windows 会进入睡眠状态。

我知道这是因为在运行程序(调试)时超过了睡眠等待时间,我可以通过增加睡眠等待时间或在 Windows 控制面板电源设置中将设置设置为“从不”睡眠来轻松停止这种情况。

但我想要一个基于编程或 Visual Studio 的解决方案。我希望我的计算机在程序执行(调试)过程中不要休眠。