Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/assembly/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 安卓云到设备消息基础_Android_Google Cloud Messaging - Fatal编程技术网

Android 安卓云到设备消息基础

Android 安卓云到设备消息基础,android,google-cloud-messaging,Android,Google Cloud Messaging,我想将云到设备消息添加到我的应用程序中。是否需要编写服务? 我关闭了所有关于whatsapp viber等的运行服务。然后,当whatsapp及其服务关闭时,我试图通过whatsapp向我的手机发送消息。我的信息已经传递了。 所以这意味着服务是不必要的 是否需要编写服务 在大多数情况下,是的。这在一定程度上取决于您试图如何响应GCM消息 我的信息已经传递了。所以这意味着服务是不必要的 不,这意味着不需要某种持续运行的服务 GCM消息以广播形式发送。如中所述,清单注册的BroadcastRecei

我想将云到设备消息添加到我的应用程序中。是否需要编写服务?
我关闭了所有关于whatsapp viber等的运行服务。然后,当whatsapp及其服务关闭时,我试图通过whatsapp向我的手机发送消息。我的信息已经传递了。 所以这意味着服务是不必要的

是否需要编写服务

在大多数情况下,是的。这在一定程度上取决于您试图如何响应GCM消息

我的信息已经传递了。所以这意味着服务是不必要的

不,这意味着不需要某种持续运行的服务

GCM消息以广播形式发送。如中所述,清单注册的BroadcastReceiver是必需的

但是,
BroadcastReceiver
onReceive()
方法在主应用程序线程上被调用,因此,如果响应GCM消息的工作将超过几毫秒,如果我们的UI恰好位于前台,我们就无法在
onReceive()
上进行该工作,而不将jank引入我们的UI。而且,由于只有在调用
onReceive()
时才会认为清单注册的
BroadcastReceiver
正在运行,因此我们无法安全地分叉我们自己的线程,因为我们的进程可能会在线程结束之前终止


因此,经常接收GCM消息的
BroadcastReceiver
会将实际工作委托给
IntentService
。这也包含在本节中。

非常感谢您的回复。我想通过GCM显示新公告的标题,当用户单击通知时,我想在我的应用程序中显示公告正文。在这种情况下,您认为有必要提供服务吗?@BilalTürk:如果您不需要执行任何磁盘I/O来创建
通知
,那么只需在
onReceive()中执行即可。但是,您可能希望使用事件总线(例如,
LocalBroadcastManager
,greenrobot的事件总线)来处理GCM消息传入且您的应用程序已处于前台的情况。