Android 开发前台服务建议

Android 开发前台服务建议,android,android-service,Android,Android Service,我想开发一个前台服务来产生声音。然而,我尝试的每件事都只在调试时起作用,一旦我断开电缆,手机就独立了,我就得不到我想要的 我想要的是一项服务,它使用倒计时,每X间隔执行一项任务,,即使手机处于睡眠状态 为此,我使用了以下两个选项,每个选项都有其缺点: 1) 使用startForeground()创建前台服务;最后得到了后台服务。当手机进入睡眠状态时,服务就会进入睡眠状态,每隔一段时间操作系统就会运行它(我能听到声音)。 一旦我打开手机的锁屏,服务就会激活并立即发出声音 2) 利用WakeLock

我想开发一个前台服务来产生声音。然而,我尝试的每件事都只在调试时起作用,一旦我断开电缆,手机就独立了,我就得不到我想要的

我想要的是一项服务,它使用倒计时,每X间隔执行一项任务,,即使手机处于睡眠状态

为此,我使用了以下两个选项,每个选项都有其缺点:

1) 使用startForeground()创建前台服务;最后得到了后台服务。当手机进入睡眠状态时,服务就会进入睡眠状态,每隔一段时间操作系统就会运行它(我能听到声音)。 一旦我打开手机的锁屏,服务就会激活并立即发出声音

2) 利用WakeLock;即使手机处于睡眠状态,此功能也能正常工作,但现在手机的“进入睡眠”超时功能被禁用,但我仍然希望它处于打开状态,这样用户就不必按下锁定按钮


有人能告诉我该怎么做吗?

您可能正在寻找
AlarmManager

安排重复警报

安排重复报警,该报警具有不精确的触发时间要求;例如,每小时重复一次的警报,但不一定在每小时的顶部


更具体地说,带有
RTC_WAKEUP
的AlarmManager。真不敢相信我在今天早些时候编写时错过了“WAKEUP”标志选项。它不能使屏幕恢复正常,这很好。我可以假设“SetRepeating”在较大的时间间隔内更精确吗?
setRepeating(int type, long triggerAtMillis, long intervalMillis, PendingIntent operation)
setInexactRepeating(int type, long triggerAtMillis, long intervalMillis, PendingIntent operation)