I add a local service to my MainActivity, in the onResume, I did this
@Override
public void onResume() {
super.onResume()
boolean is_start = isMyServiceRunning(MyService.class)
if (is_start) {
bindMyService()
} else {
startMyService()
bindMyService()
}
}
In onPause I just simply do the "unBindMyService" operation.
Also, I add the Context.BIND_AUTO_CREATE flag to bind the service, the result is very strange.
- I can see MyService's "onCreate" and "onBind" with logcat, this goes smoothly
- When I switch to another activity or app, The "Unbind" is called, which is correct!
- When I "force stop" the service in settings, the "onDestroy" of the Service is called in response, that is OK.
- When I remove the app from the "Recent List" of the apps, there are no "onDestroy" of the Service is called, I can explain it as that the service is not terminated. also OK.
- What I can't explain is that after 4, I launched my app again, I've noticed that the "onCreate" and "onBind" of the service is called, but without a single "onDestroy" of the Service. Even when "is_start" is true, the Service is created again without an "onDestroy" called.
So what happened between 4 and 5? The service is still alive or is dead?
0 comments:
Post a Comment