当应用程序运行时,防止移动设备进入睡眠模式

7

我希望当我的线程正在发送HTTP请求时,防止Android手机进入睡眠模式。当线程执行HTTP调用时,手机会进入睡眠模式,当用户唤醒手机时,线程永远无法完成。

用户不得不重新启动应用程序。该怎么办?请帮忙。


它们将无法工作 http://www.netmite.com/android/mydroid/development/pdk/docs/power_management.html#androidPowerWakeLocks - AZ_
2
成千上万的应用程序使用唤醒锁定,因此如果您的应用程序没有使用它,则意味着您的手机或应用程序未正常运行。 - Andrew White
3个回答

10
你需要一个 WakeLock。有不同类型的唤醒锁,因此确保选择最不侵害性的唤醒锁来满足您的需求。特别是听起来你需要一个Partial Wake Lock

Partial Wake Lock - 确保CPU正在运行的唤醒锁。屏幕可能没有开启。

此外,请确保在清单文件中添加权限 android.permission.WAKE_LOCK。最后,在完成后一定要释放您的锁。

Badumtish。他可能没有包含权限或其他东西。 - Codemonkey
@Andrew:那么有什么解决办法? - AZ_
@Badumtish:如果您没有包含适当的权限,它将抛出异常。 - AZ_
@Aizaz:也许你应该提交一个 bug 报告?通常,如果你想在 UI 显示时保持屏幕开启,你可以为 Activity 窗口使用 FLAG_KEEP_SCREEN_ON,并且在不在其 UI 中时持有 PARTIAL_WAKE_LOCK 以保持设备运行。 - Samuh

4
为了防止手机进入休眠状态,您可以使用WakeLock,但是在这样做时要小心,以免消耗用户的电池。如果手机进入休眠状态,用户是否真的关心您的应用程序完成了它正在进行的请求?
您还需要WAKE_LOCK权限。

2

JAVA版本: getWindow().addFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON);
KOTLIN版本: window.addFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON)
使用此代码,它将保持您的设备唤醒,并且您不需要任何权限。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接