问题标签 [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 投票
1 回答
731 浏览

android - 当我在睡眠模式下启动服务时,Android 服务会立即调用 OnDestroy

我使用BroadcastReceiver到:

  • 叫醒电话
  • 在服务中播放声音和振动
  • 显示一个Activity

当我在手机不在的情况下进行测试时,一切都运行良好Sleep mode

当手机Sleep mode手机被锁定并且屏幕关闭)时,屏幕会打开并且Activity显示良好振动服务会OnDestroy立即进入onStartCommand

我的广播接收器:

在振动服务中:

在 WakeLockManager 中:


我的问题:

  • OnDestroy当我在睡眠模式下启动服务时,如何防止立即呼叫?
  • 我应该使用通知来保持这项服务的活力吗?

编辑 1

我试图通过通知将该服务作为前台服务

现在我打电话给我showNotificationonStartCommand但它对我没有帮助!

使用后我成功Thread.Sleep(10000)了,我在 onStartCommand 中使用了一个,我的手机振动了 10 秒。Play()

代码:


在某些情况下,我还测试了上述代码。结果(振动 10 秒)是:

  • 失败: 睡眠模式=>Activity倒计时----开始---->TimerTimeoutBroadcastReceiver
  • 失败: 睡眠模式 => A Service----开始---->TimerTimeoutBroadcastReceiver
  • 失败: 正常模式 => A Service----开始---->TimerTimeoutBroadcastReceiver
  • 成功:正常模式 =>Activity倒计时----开始---->TimerTimeoutBroadcastReceiver

最后我想TimerTimeoutBroadcastReceiverService我的APP中开始,但这个问题让我很困惑!

0 投票
2 回答
1540 浏览

arm - CMSIS-RTOS Keil RTX - 进入 ARM 深度睡眠的正确方法

您好,我想知道让 ARM Cortex M0+ 进入深度睡眠的正确方法是什么。特别是我正在使用 CMSIS-RTOS RTX。

我的 IRQ 处理方式是 ISR 只是设置 OS Signal 并清除 IRQ。例如。:

然后在我的空闲循环中

问题是我的 ISR 没有完全处理 IRQ(它只是在操作系统中设置信号,一些线程会根据优先级和调度来处理它——我想保持这种方式)。但是当 IRQ 出现在指令os_suspend()__wfi()指令之间时,IRQ 被清除但任务不能被调度(因为os_suspend())。当 CPU 进入 WFI 时,它会进入睡眠状态,因此应处理来自 ISR 的信号的 OS 线程永远不会执行。但是 CPU 也不会被(pad)IRQ 唤醒,因为它已经被处理了。

问题是如何自动检查没有待处理的任务并启动 WFI。

就像是

0 投票
2 回答
798 浏览

java - java nio套接字未检测到机器何时进入睡眠或休眠状态

这是我的套接字服务器和客户端组件的简化版本。

主要目标是让客户端检测服务器何时宕机,让服务器检测客户端何时宕机。

当客户端或服务器被终止时(在 Windows 上),这完美地工作(得到 IOException“现有连接被远程主机强行关闭”)。

我还想检测运行客户端或服务器的机器何时进入睡眠(或休眠),最终使用相同的机制。

相反,当前行为是未检测到“另一台机器进入睡眠”事件,并且当机器被唤醒时,连接再次处于活动状态。此时“进程停止”事件像以前一样被检测到。

在客户端机器进入睡眠状态的情况下,罪魁祸首似乎是“selector.selectedKeys()”没有返回连接到睡眠机器的密钥。

Windows 上的套接字实现中是否缺少此功能?

有人对如何解决/解决此问题有任何建议吗?

0 投票
1 回答
440 浏览

c# - WaitForSingleObject 立即发出信号

我正试图让我的电脑唤醒,以防它进入睡眠模式。我在某个网站上找到了这个代码片段,但我最后添加的 Messagebox 总是立即返回。

我还在电源选项中启用了我的系统以使用唤醒计时器。

我这样称呼它:

从理论上讲,这应该只在 2 分钟后发出信号,对吧?为什么它会立即发出信号,我该如何纠正?

0 投票
0 回答
661 浏览

android - ScheduledThreadPoolExecutor 不在睡眠模式下运行

最近一直在做Android应用后台线程中重复任务的调度。我从 AlarmManager 开始,但由于它在指定的时间间隔触发不准确,我决定使用其他 JAVA 和 Android API。

我从 Timer 开始,然后是 ScheduledExecutorService,最后是 ScheduledThreadPoolExecutor。

Timer 的问题在于它并不总是以正确的时间间隔运行所有后台任务。我用它来运行 3 个后台重复任务,其中只有 2 个被触发。第三个任务是在几个小时后触发的,为了赶上之前的所有未命中,它在 10 毫秒内触发(尽管间隔是 5 分钟)

ScheduledThreadPoolExecutor 在触发重复的后台任务时更加准确。但它的问题是当设备处于睡眠模式(屏幕关闭)时它不会触发后台任务。Handler.postDelayed() 的行为也是如此,它在设备处于睡眠模式时暂停任务的执行。

现在,我已经走到了死胡同。我正在寻找一种解决方案,可以帮助我同时运行我的后台任务,并且不会因设备进入睡眠模式而造成任何中断。

请指教。

0 投票
1 回答
6221 浏览

windows - 睡眠后 DNS 查找失败 - Windows 10

几天以来,在我的电脑睡觉后,所有名称查找都失败了。这会导致浏览器不加载任何页面。只有重新启动才能解决此问题,禁用和启用我的 Wifi 适配器不会。我看到一个 IPv6 名称服务器在睡眠后出现在 ipconfig 的输出中,这是以前不存在的,并且这个名称服务器不起作用......

我正在使用最新的 Windows 10 Enterprise 安装,并且在 Netgear JWNR2000T 之后。我有一个不需要登录的互联网连接,只需将进入我家的以太网电缆连接到 netgear 即可。客户端是通过 DHCP 配置的。

在这种情况开始发生时(2/3 天前)安装的唯一东西是https://support.microsoft.com/en-us/kb/3140768、VS2015更新 2 和一些应用程序更新。这似乎无关紧要。网件的固件好久没换了,一直是最新的,也没动过任何设置。

下面是睡眠前后 ipconfig、nslookup 和 ping 的输出。DNS 服务器 192.168.1.1 是我的路由器。

额外问题:非权威答案 google.com -> 192.168.8.1 来自哪里?鉴于 DNS 查询超时...

睡觉前

睡觉后

0 投票
0 回答
298 浏览

windows - 是否可以找到所有阻止自动睡眠的 Windows 进程,没有管理员权限?

该命令powercfg -requests将提供当前阻止 Windows 10 设备自动进入睡眠模式的进程列表。但是,该命令需要管理员权限。仅仅为了执行简单的信息查询而要求管理员访问似乎远非理想。

那么是否可以在用户空间应用程序中查询 Windows 10 API 以获取类似列表?

这些进程正在传递SetThreadExecutionState()标志ES_SYSTEM_REQUIREDES_DISPLAY_REQUIRED. 但我没有看到任何查询已注册执行状态列表的函数。

0 投票
1 回答
604 浏览

python - 如何在一段时间后执行命令但使用取消按钮

我想要的是让我的电脑在大约 10 秒后进入睡眠状态,但我希望它有一条带有取消按钮的消息

这是我尝试过的:

这是我对 tkinter 的警告:

我需要它倒数直到睡眠(这个命令):

但是如果我按下取消按钮,它将停止并且什么都不会发生

0 投票
0 回答
77 浏览

android - Android:手机进入睡眠状态后,CountDownTimer 是否仍然有效

当手机进入睡眠模式时,CountDownTimer 会工作吗?如果没有,是否有广播接收器可以检测手机是否进入睡眠状态并再次唤醒?

0 投票
1 回答
129 浏览

android - Android wearablelistenerservice在手机睡着时不听

我的手机上运行了一个小型家庭自动化应用程序,它监听来自可穿戴设备的“命令”并发送获取请求。

当手机屏幕打开(即设备处于唤醒状态)时,我的 WearableListenerService 会收到这些消息,但是当手机进入睡眠状态时,消息不会从 Wear 设备传递到手机。

如果我在手机处于睡眠状态时从可穿戴设备向手机发送消息,然后在消息超时期限内手动唤醒手机,则会收到消息并随后触发 get 请求。

我想知道是否有任何方法可以让 WearableListenerService 即使在设备被锁定时也能保持监听,我知道 WakeLocks 但这些似乎对电池寿命很不利。

我正在努力查看这是否是 AndroidWearableService 的定义行为,或者是否有一些外部因素在起作用(我使用的是 xperia z5)