referring to the previous 5 lines here, you're creating the handler on the thread that the GCMBaseIntentService is on (therefore associating the MQ with that thread). If you need to do this on a separate thread, just create a new thread, no need to use the mHandler.post(...) method (it will associate it with the GCMBaseIntentService) queue.