我有一个进程内IntentService,用于转换和缓存活动使用的磁盘上的映像,可能需要5分钟才能运行(取决于设备)。同时,活动继续运行并向用户UI显示低分辨率版本的图像。
我的问题是,如果用户将活动发送到后台,该服务将继续运行,但在某些时候它似乎暂停,因为进度停止并且在重新启动IntentService
之前不会继续。我拦截了IntentService onDestroy()
,但发现只有当IntentService完全完成时才会调用它。
如果需要,Android可以暂停我的IntentService
,但有没有办法知道它是否已暂停?我想知道为了1)取消(或更改)通知消息并执行任何清理。
提前谢谢。
答案 0 :(得分:0)
可能暂停是由于CPU进入睡眠模式,屏幕变空后几秒钟。您的服务需要获取WakeLock才能使CPU保持运行(并在服务完成之前释放它,但不能在onDestroy()
方法上发布,但不保证每次都运行)。没有警告信号表示CPU将进入睡眠模式,没有广播事件或类似的事情。