Android 开发人员:TimerTask 和手机睡眠可能有些奇怪?

2024-03-12

我已经编写了我的第二个 Android 应用程序,该应用程序根据特定的时间表(仅截至目前的日期和时间)切换音频配置文件...如果我通过 eclipse 使用模拟器运行代码,代码可以正常工作...但是我最近导出了 apk 并将其安装在我的 At&t Samsung Galaxy S2 上,并添加了与模拟器相同的配置文件时间表,但由于某些奇怪的原因,timertask 在第一次后没有执行...

例如: 这是我的手机和模拟器的配置文件时间表:

上午 8 点 - 下午 5:30 -- 工作

下午 5:30 - 晚上 10 点 -- 回家

晚上 10 点 - 上午 8 点——睡觉

一旦安排了上述操作,我按下主要活动上的激活按钮..后台服务运行从一个配置文件切换到下一个配置文件,直到它被停用......

我注意到模拟器和手机之间的唯一区别是,模拟器屏幕永远不会关闭......所以我猜模拟器永远不会进入睡眠状态?然而,我的手机屏幕在大约 30 秒不活动后关闭,除了锁屏之外...此外,我在手机上打开了 USB 调试并将其直接插入计算机,从看起来的情况来看,代码是在我的手机上执行,将一个配置文件切换到下一个配置文件,没有任何问题...(请注意,当我进行此测试时,我在配置文件计划中使用了较小的时间间隔)...其他详细信息:我还添加了 startForeground () 在我的服务代码中并确保服务不会被终止......

有谁知道我缺少什么,或者我能做些什么来解决这个奇怪的问题?...在​​发布此内容之前我做了一些研究,发现了一些建议使用的帖子:Android 的电源管理器 http://developer.android.com/reference/android/os/PowerManager.html...

感谢您的输入


这没什么奇怪的:如果手机处于睡眠状态,CPU 就会关闭,您就无法执行代码。不要使用TimerTask在 Android 上,使用AlarmManager安排重复任务。它在内核中实现,可以在必要时唤醒手机(这可能会对电池寿命产生负面影响,因此请谨慎使用)。还要查看 WakeLock。

http://developer.android.com/reference/android/app/AlarmManager.html http://developer.android.com/reference/android/app/AlarmManager.html

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Android 开发人员:TimerTask 和手机睡眠可能有些奇怪? 的相关文章

随机推荐