android后台服务停止处理广播事件

时间:2010-11-06 19:36:04

标签: android events broadcast background-service

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

提前谢谢! MICHELA

1 个答案:

答案 0 :(得分:0)

  

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

为什么不使用AlarmManager,所以你不会占用太多内存?用户真的不喜欢永恒的服务。

  

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

当然。

  

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

使用AlarmManagerWakefulIntentService。安排AlarmManager每小时调用一次您的应用程序(最好通过setInexactRepeating())。让WakefulIntentService获取您的样本。如果您遵循记录的WakefulIntentService配方,设备将保持清醒足够长的时间以便您获取样品,然后将重新入睡。您的服务不会始终保留在内存中。您可以获得功能,并且用户可以获得更好的设备性能。

NOT 只需使用WakeLock,这样您的应用程序不仅会一直占用内存,而且会让CPU始终保持运行状态。

相关问题