Android 泄漏的服务连接

Android Leaked Service Connection

我正在使用 JobIntent 服务执行一些操作。我从屏幕 A 开始服务。

在服务执行其工作后,我从 JobIntent 服务向屏幕 A 发送回调。然后屏幕 A 立即完成自身并打开一个新的屏幕 B。

我注意到有一条日志指出服务连接泄漏。下面是日志

android.app.ServiceConnectionLeaked: Activity Package.ScreenA has leaked 
ServiceConnection Package.ServiceName@7a41f83 that was originally bound here

这个错误是什么意思,如果这个错误继续存在是否有任何损害?可以采取哪些措施来防止此类错误?

尽管我不确定,但该服务保留了屏幕 A 的上下文引用,这就是为什么会发生这种情况?

提前致谢!

注意 JobIntentService 内存泄漏

通过activity.getApplicationContext() — 那么静态映射间接地只持有Application对象实例引用。

你可以阅读这篇post这对你有帮助。

https://medium.com/@luszczuk/watch-out-for-jobintentservice-memory-leak-828a629ab085

图片来源:Michał Łuszczuk

@Rahulrr2602 请使用此图表了解每个图表的局限性。