我正在使用JobIntent服务执行一些操作。我从屏幕A说起启动服务。
服务完成工作后,我将从JobIntent服务发送回叫到屏幕A。然后屏幕A立即完成操作并打开一个新的屏幕,说是B。
我能够注意到有一条日志指出服务连接泄漏。以下是日志
android.app.ServiceConnectionLeaked: Activity Package.ScreenA has leaked
ServiceConnection Package.ServiceName$1@7a41f83 that was originally bound here
此错误是什么意思,如果此错误继续存在,是否有损坏?可以采取什么措施来防止此类错误?
尽管我不确定,但是该服务保留了screenA的上下文引用,这就是为什么可能会发生这种情况?
预先感谢!
答案 0 :(得分:1)
当心JobIntentService内存泄漏
传递 activity.getApplicationContext()-然后,静态映射将仅间接保存Application对象实例引用。
您可以阅读这篇文章,这将对您有所帮助。
https://medium.com/@luszczuk/watch-out-for-jobintentservice-memory-leak-828a629ab085
信用:MichałŁuszczuk
答案 1 :(得分:1)