Android 对于GcmListenerService,是否在MessageReceived后台?

Android 对于GcmListenerService,是否在MessageReceived后台?,android,google-cloud-messaging,gcmlistenerservice,Android,Google Cloud Messaging,Gcmlistenerservice,扩展GcmListenerService时,onMessageReceived是在后台进程中运行还是在UI线程上运行?我需要知道我是否可以在方法体内部进行网络调用,而不使用asyncTask之类的工具 我查看了源代码,确信它是一个没有处理程序的普通服务。但是有一些关于线程池执行器的代码和一些明显模糊的东西。服务没有在Ui/主线程上运行 即使应用程序关闭,服务也可以(在后台)运行,这样您可以获得推送通知,在接收推送时监听调用的意图,并使用它唤醒应用程序。简单检查以确定当前线程是否为主UI线程 bo

扩展
GcmListenerService
时,
onMessageReceived
是在后台进程中运行还是在UI线程上运行?我需要知道我是否可以在方法体内部进行网络调用,而不使用asyncTask之类的工具


我查看了源代码,确信它是一个没有处理程序的普通服务。但是有一些关于线程池执行器的代码和一些明显模糊的东西。

服务没有在Ui/主线程上运行


即使应用程序关闭,服务也可以(在后台)运行,这样您可以获得推送通知,在接收推送时监听调用的意图,并使用它唤醒应用程序。

简单检查以确定当前线程是否为主UI线程

boolean isMain = Looper.getMainLooper().getThread() == Thread.currentThread();
放置在MessageReceived方法中的
表示它正在后台进程中运行(类似问题)

当我扩展
GcmListenerService
时,
onMessageReceived
是否在 后台进程还是在UI线程上?我需要知道我是否可以 在方法体内部进行网络调用,而不使用asyncTask 或诸如此类

是的,您可以在
onMessageReceived()
方法中进行网络调用,因为它正在后台进程中运行。例如,在使用大图像通知样式在通知中显示图像之前,可以使用此方法下载图像