0

我的 android 应用程序有问题。我正在使用后台服务(在状态栏上有通知),它每小时执行一次音频样本。为了执行这个示例,我每小时生成一个广播事件,当我捕获该事件时,音频录制开始。白天,当我使用手机时,我没有任何问题。奇怪的行为发生在夜间,当手机似乎进入“空闲”状态时:不再处理广播事件。从日志文件中,我了解到事件是生成并放入队列中......当我再次开始使用手机时,所有这些事件都会在同一时刻引发。你对如何解决这个问题有任何想法吗?如何强制手机继续处理我的事件?我是否必须设置任何标志变量以避免手机进入这种“空闲”状态?希望可以有人帮帮我!

先感谢您!米歇拉

4

1 回答 1

0

我正在使用后台服务(在状态栏上有通知),它每小时执行一次音频样本。

为什么不使用AlarmManager,这样就不会占用那么多内存?用户真的不喜欢永恒的服务。

奇怪的行为发生在夜间,当手机似乎进入“空闲”状态时:不再处理广播事件。

当然。

你对如何解决这个问题有任何想法吗?

使用AlarmManager和一个WakefulIntentService. 安排AlarmManager每小时调用一次您的应用程序(最好通过setInexactRepeating())。获得您WakefulIntentService的样品。如果您遵循记录的WakefulIntentService配方,设备将保持足够长的时间保持清醒,让您获取样品,然后重新进入睡眠状态。您的服务不会一直保留在内存中。你得到你的功能,而用户得到更好的设备性能。

不要只使用 a这样你的应用程序不仅会一直占用内存,还会让 CPU 一直运行WakeLock

于 2010-11-06T20:48:22.780 回答