我的Android应用程序出了问题。 我正在使用后台服务(状态栏上有通知),每小时执行一次音频采样。为了执行此示例,我每小时生成一个广播事件,当我捕获事件时,音频录制开始。白天,当我使用手机时,我没有问题。奇怪的行为发生在夜晚,当电话似乎进入“空闲”状态时:广播事件不再被处理。从日志文件中我了解到事件是生成并放入队列的...当我再次开始使用手机时,所有这些事件都会在同一时刻被提升。 你对如何解决这个问题有任何想法吗?如何强制手机继续处理我的活动?我是否必须设置任何标志变量以避免手机进入这种“空闲”状态? 希望有人能帮助我!
提前谢谢! MICHELA
答案 0 :(得分:0)
我正在使用后台服务(状态栏上有通知),每小时执行一次音频采样。
为什么不使用AlarmManager
,所以你不会占用太多内存?用户真的不喜欢永恒的服务。
奇怪的行为发生在夜晚,当电话似乎进入“空闲”状态时:广播事件不再处理。
当然。
你对如何解决这个问题有任何想法吗?
使用AlarmManager
和WakefulIntentService
。安排AlarmManager
每小时调用一次您的应用程序(最好通过setInexactRepeating()
)。让WakefulIntentService
获取您的样本。如果您遵循记录的WakefulIntentService
配方,设备将保持清醒足够长的时间以便您获取样品,然后将重新入睡。您的服务不会始终保留在内存中。您可以获得功能,并且用户可以获得更好的设备性能。
NOT 只需使用WakeLock
,这样您的应用程序不仅会一直占用内存,而且会让CPU始终保持运行状态。