In my app, I use a service to communicate with our server. The Service spawns several message queue threads to deal with tasks with different priorities.
This model
I had exactly the same problem when I was dealing with a bluetooth service (the problem occurred during the development). When I disconnected my device and killed the ADB it didn't happen again and onCreate was called only once. I assume it is some bug because it happens from time to time. But maybe you have a slightly different problem...