问题标签 [screen-off]

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 投票
0 回答
541 浏览

android - 屏幕开/关接收器的服务和电池寿命

我是 Android 和 Java 编程的新手,所以我想澄清几个问题。

我编写了一个后台服务,它每 10 秒验证一次,并且根据某些条件,它可能会执行某些事情(也可能不执行)。这是使用定时器实现的。

到目前为止我的理解是,即使屏幕关闭,服务中的计时器也会运行,因此每隔 10 秒,即使屏幕关闭,计时器也会启动。

我想这会对电池寿命产生影响,尽管我不知道有多少或如何衡量这一点。

现在,屏幕关闭时我不需要服务做任何事情,所以我正在考虑注册 Screen OFF 和 Screen ON 广播意图。

在屏幕关闭时,代码会停止计时器——还是停止整个服务会更好?– 在屏幕上,它将启动计时器(或服务)。

我对这个方向的想法是我的应用程序将消耗更少的电池,而不是其他情况

请告诉我我的逻辑是否合理

如果我错了,或者如果有更好的方法来实现这一点,请告诉我。

谢谢!

0 投票
2 回答
5666 浏览

android - Android 通知管理器在屏幕关闭的情况下不起作用

我有一个倒计时计时器,当它关闭(归零)时,它会检查应用程序是否有焦点。如果没有,它会在通知栏中启动通知。当您单击通知时,将重新打开应用程序。现在所有这些工作正常,但如果屏幕碰巧熄灭,计时器会继续运行,并且通知在正确的时间可用,但在我重新打开屏幕之前不会真正振动或响铃。然后它显示通知,就像它在队列中等待一样。

如何获取它以便通知管理器在屏幕关闭时真正提醒用户?

更新:如果我将计时器设置为 2 分钟,则通知实际工作还需要 2-3 分钟。所以它确实有效,但延迟很大!

代码:所以我在应用程序失去焦点时设置通知服务,当 MyCount1 完成时检查应用程序是否有焦点,如果没有则显示通知。当屏幕背光打开时,这一切都有效。一旦熄灭,它就变得不可靠了。

0 投票
1 回答
6967 浏览

android - 屏幕关闭时Android会降低下载速率吗?

我观察到,如果我在应用程序的屏幕上使用 wget,我可以更快地下载文件,它会获得屏幕昏暗唤醒锁定,而不是在没有此应用程序并关闭屏幕的情况下执行相同操作。我下载了完全相同的文件(从我的apache web 服务器),当我在应用程序上使用屏幕时,时间几乎快了两倍。要下载文件,我使用 wget 的移植版本。这是我的问题:

屏幕关闭时Android会降低下载速率吗?

或者由于应用程序上的屏幕获得了唤醒锁,强制 CPU 始终处于开启状态,因此下载过程花费了更多的 CPU 周期.. 我有点困惑..

0 投票
1 回答
1705 浏览

android - 之前关闭屏幕为时已晚

我有一个活动,它的 onPause 必须做一些工作,但不是在屏幕关闭时。我已经注册了ACTION_SCREEN_OFF意图的接收者,理论上,这个和应用程序级别的静态标志应该可以解决问题,但是......它不起作用,因为onPause在接收者可以获得它的意图之前调用活动的回调. 即: logcat*ting* 按下空闲按钮时,我可以onPause先看到跟踪,然后再看到跟踪onReceive。此时,设置静态标志不是很重要......

有没有可能在活动onPause时知道屏幕已关闭?

在此先感谢
L。

0 投票
1 回答
310 浏览

android - 在屏幕关闭时获取传感器数据(Android 4.0+)

据我所知,在 Android 设备上,没有 100% 确定的方法可以在屏幕关闭时从设备传感器获取数据。有一些解决方法,但它们并不总是有效。但是我读到的所有帖子都在描述 Android 版本 ~2.2。

有谁知道该错误是否已在 Android 4.0+ 中修复?

0 投票
1 回答
211 浏览

android - 锁屏不工作时保存当前电池电量

当用户按下电源按钮(--> 屏幕关闭)时,我正在尝试保存当前的电池电量。

起初,我有一个广播接收器,它会在手机启动时启动。它的任务是启动一项服务,该服务为屏幕关闭/开启意图创建另一个广播接收器( - 由于在清单中指定屏幕关闭意图时它不起作用,我通过此服务动态创建它)

我的启动接收器

创建接收器服务

这是 ScreenReceiver

现在我的问题:ActionService 应该将电池电量保存到首选项文件: ActionService

问题是当收到屏幕关闭意图时没有任何反应 - 我的 ActionService 应该保存电池电量,但没有被调用。

我的 Logcat 输出是:

并且ActionService 的 Log.d("Saved preference", "saved "+p.getInt("LOCKLVL", -1));没有输出

我什至尝试设置这样的唤醒锁: ScreenReceiver

并在保存首选项后释放它。但这并没有改变任何东西。

为了完整起见,这是我的WakelockHelper课程

那么,当用户锁定手机时,如何保存当前的电池电量呢?为什么屏幕关闭意图后我的服务没有启动?为什么唤醒锁没有任何改变?

谢谢!

0 投票
1 回答
1055 浏览

android - 屏幕超时时间还有吗?

如何获得屏幕关闭之前的剩余时间?我不是指超时设置的值,而是屏幕关闭前还剩多少时间(如果用户没有触摸屏幕)。每2-3秒进行一次检查。

0 投票
0 回答
287 浏览

android - Android - 屏幕关闭时出现不必要的延迟

我正在开发一个 android 程序,在该程序中我使用服务从加速度计捕获数据。即使屏幕关闭,我也使用唤醒锁继续捕获数据。还有一个 TimerTask 以确保每 50 毫秒读取一次数据。我使用广播接收器在屏幕关闭事件后重新注册事件侦听器。屏幕点亮时一切正常,但当屏幕熄灭时,会有延迟,并且大约每 800 毫秒捕获一次数据。即使不使用加速度计,此函数 TimerTask 中也会出现延迟。我还尝试使用 hanlde 并为线程设置延迟 50 毫秒,但空白屏幕的延迟仍然存在。我正在使用摩托罗拉剃须刀和安卓果冻豆。谁能帮我?谢谢!

0 投票
2 回答
11298 浏览

android - 如何在android中获取屏幕锁定广播

如何在android中触发屏幕被锁定或打开?

我尝试在广播接收器中使用 SCREEN_OFF 和 SCREEN_ON 操作,但它不起作用。

在活动中,我已经注册了广播,例如-

屏幕是我的广播接收器的对象

0 投票
1 回答
1348 浏览

android - 屏幕关闭时重新启用键盘保护

这可能看起来与其他问题相似,但我一直在寻找一段时间,并没有找到适用于我的特定情况的解决方案。

我的应用程序的 BroadcastReceiver 当前获取完整的唤醒锁,禁用键盘保护,然后启动用户先前选择的另一个活动(另一个应用程序、快捷方式意图等)。我遇到的问题是当我尝试重新启用键盘保护时(我相信唤醒锁已被释放,但我会在其他时间确保这一点)。

由于调用了另一个活动,因此我无法使用 Window 标志,因此我一直在尝试使用 KeyguardManager.KeyguardLock 来禁用和启用。此外,由于我无法控制用户在其他应用程序中的操作,因此我想在下次屏幕关闭时重新启用键盘保护。我知道为此使用常规的 BroadcastReceiver 是行不通的,所以我一直在尝试实现一个 Service 来处理它,这就是我遇到麻烦的地方。

目前,我在第一个 BroadcastReceiver 被触发时启动服务,我让服务在 OnCreate 中为 ACTION_SCREEN_OFF 注册另一个 BroadcastReceiver,并让 ScreenOffReceiver 调用服务的 onStartCommand,这应该重新启用键盘保护。我在 onStartCommand 中有一个布尔值,可以知道哪个 BroadcastReceiver 调用了它。

现在,键盘保护要么没有重新启用,要么重新启用太快(在屏幕关闭之前)。有什么想法吗?

这是一些代码:

AlarmActivity 由第一个 BroadcastReceiver 调用以打开用户选择的操作:

这是服务:

这是 ScreenOffReceiver: