Reputation: 25353
Let's say Activity A is created and then A starts a Service S and binds itself to S. S notifies A of updates which will cause the state of A to change. What happens to A and S after Android pauses or stops A?
For instance:
A.isAsleep()
)Also, How do I handle the situation so that the "right thing" happens? Do I unbind services in onPause() and re-bind upon onResume()?
Upvotes: 4
Views: 2061
Reputation: 11439
(A) will be unbound from (S) onPause, but if you didn't call an unbind method, I think you will get a memory leak.
Unless you rebind (A) to (S) onResume(), (A) will note be aware of (S) unless the activity is recreated.
Depends on how you are sending updates. NPE's can happen for sure if you at all reference (A) and it happens to be destroyed while paused.
(S) will only be aware that (A) was paused if you have a method of communicating this to (S) as you have done.
And yes, you have it just right. You should bind and unbind onResume and onPause.
Upvotes: 2