如何知道IntentService暂停的时间

时间:2013-11-04 17:35:17

标签: java android-service

我有一个进程内IntentService,用于转换和缓存活动使用的磁盘上的映像,可能需要5分钟才能运行(取决于设备)。同时,活动继续运行并向用户UI显示低分辨率版本的图像。

我的问题是,如果用户将活动发送到后台,该服务将继续运行,但在某些时候它似乎暂停,因为进度停止并且在重新启动IntentService之前不会继续。我拦截了IntentService onDestroy(),但发现只有当IntentService完全完成时才会调用它。

如果需要,Android可以暂停我的IntentService,但有没有办法知道它是否已暂停?我想知道为了1)取消(或更改)通知消息并执行任何清理。 提前谢谢。

1 个答案:

答案 0 :(得分:0)

可能暂停是由于CPU进入睡眠模式,屏幕变空后几秒钟。您的服务需要获取WakeLock才能使CPU保持运行(并在服务完成之前释放它,但不能在onDestroy()方法上发布,但不保证每次都运行)。没有警告信号表示CPU将进入睡眠模式,没有广播事件或类似的事情。