假设创建了活动A,然后A启动服务S并将其自身绑定到S. S通知A将导致A状态发生变化的更新。 Android暂停或停止A后,A和S会发生什么?
例如:
A.isAsleep()
)另外,我如何处理这种情况以便“正确的事情”发生?我是否在onPause()中取消绑定服务并重新绑定onResume()?
答案 0 :(得分:2)
(A)将从(S)onPause解除束缚,但如果你没有调用unbind方法,我认为你会得到内存泄漏。
除非您将(A)重新绑定到(S)onResume(),否则(A)将注意到(S)除非重新创建活动。
取决于您如何发送更新。如果您完全参考(A)并且它在暂停时恰好被销毁,那么NPE肯定会发生。
(S)只会意识到如果你有一种方法可以像你一样将这个传达给(S),那么(A)就会被暂停。
是的,你说得对。你应该绑定和取消绑定onResume和onPause。