Android:在我的应用程序运行时,在手机进入睡眠状态之前更改延迟

Android:在我的应用程序运行时,在手机进入睡眠状态之前更改延迟,android,sleep,Android,Sleep,这个问题听起来很简单,我简直不敢相信我找不到相关信息(也许我脑子里的关键词错了…) 我正在寻找一种方法,在我的应用程序运行时,在手机进入睡眠状态之前改变延迟 到目前为止,我一直在使用唤醒锁来防止我的应用程序频繁关闭(its和opengl应用程序以及加载时间是一个杀手,特别是在速度较慢的手机上)。 我不喜欢无限期地开着手机的想法(主要是因为它会快速清空电池,让整个opengl应用程序运行) 那么,有没有办法将手机进入睡眠前的延迟时间改为2~3分钟 我还想补充一点,我不希望更改手机的设置(这只是用户

这个问题听起来很简单,我简直不敢相信我找不到相关信息(也许我脑子里的关键词错了…)

我正在寻找一种方法,在我的应用程序运行时,在手机进入睡眠状态之前改变延迟

到目前为止,我一直在使用唤醒锁来防止我的应用程序频繁关闭(its和opengl应用程序以及加载时间是一个杀手,特别是在速度较慢的手机上)。 我不喜欢无限期地开着手机的想法(主要是因为它会快速清空电池,让整个opengl应用程序运行)

那么,有没有办法将手机进入睡眠前的延迟时间改为2~3分钟

我还想补充一点,我不希望更改手机的设置(这只是用户的决定)

杰森


编辑以更正被指出不正确的术语“应用程序将进入睡眠状态”。

在计时器任务中创建一个
Timer
对象并
release()
您的唤醒锁。我相对确信您可以释放工作线程中的锁,但最坏的情况是,如果我不正确,您需要使用
runOnUiThread

请确保在调用
onPause()
时处理该情况,并在这种情况下取消计时器,然后立即释放锁

一般来说,我不喜欢唤醒锁,但如果这是为了让你的老板高兴,那就把唤醒锁拿走


编辑:顺便说一句,用户界面超时的系统设置可以通过应用程序访问:
SCREEN\u OFF\u timeout
in
android.provider.Settings.system
。但实际上,这仅适用于私人应用程序,公共应用程序无权更改此值。

这由用户决定(在系统设置中)。如果有的话,你可以考虑在N分钟后删除唤醒锁,但是你确定要重写用户设置吗?不,我认为我不应该浪费时间在这上面,不幸的是,我的老板已经把这个放回到待办事项清单上很长时间了(我不能一直忽视它),你的问题没有任何意义。应用程序永远不会“进入睡眠状态”。手机可能会睡着。如果用户打开其他活动,则可以暂停活动并将其置于后台。如果该活动是在后台进行的,Android操作系统可能会决定在需要资源的情况下终止它,但您无法阻止这种情况。你想完成什么?有没有一种“干净”的方法可以在n分钟后移除唤醒锁?(我的意思是api中已经编写了一些代码,而不仅仅是“让线程等待n分钟,然后让它移除唤醒锁”类型的解决方案?@Mayra:如果我不清楚/没有意义,那很抱歉(因为时差,我只睡了2小时:(.如果你不碰你的手机,在一定时间内它会“进入睡眠状态”)(屏幕变黑,当你唤醒它时,你必须解锁它等)。我想知道的是“当我的应用程序打开时,有没有办法控制手机进入睡眠状态所需的时间?”似乎每次用户与屏幕交互时,计时器都应该重置。此外,如果你这样做,你应该为用户提供一种方法来配置时间量,或者完全关闭唤醒锁。是的,我将把更详细的细节留给Jason。这只是我想到的第一件事。我仍然认为这是一个可怕的UI攻击(安卓有一个系统设置!),但听上去,这是一个私人应用程序,所以他们可以随心所欲地进行黑客攻击。