Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/181.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 - Fatal编程技术网

如何在Android中触发通知?

如何在Android中触发通知?,android,Android,我正在构建一个Android应用程序,在后端有一个服务器。我想做的是,每当服务器中更新任何新内容时,应用程序都会触发一个通知,显示用户手机中新添加的内容。编辑添加:这对于Android M和更高版本来说更为重要。作为提高电池寿命的全面努力的一部分,该操作系统积极限制应用程序过去用于同步和通知的许多技术。使用内置方法,如JobScheduler和GCM,以避免出现问题 Android的核心通知机制是谷歌云消息(GCM),有文档记录。它内置于低层平台中,由移动网络直接支持,因此它通常是最有效的选择。

我正在构建一个Android应用程序,在后端有一个服务器。我想做的是,每当服务器中更新任何新内容时,应用程序都会触发一个通知,显示用户手机中新添加的内容。

编辑添加:这对于Android M和更高版本来说更为重要。作为提高电池寿命的全面努力的一部分,该操作系统积极限制应用程序过去用于同步和通知的许多技术。使用内置方法,如JobScheduler和GCM,以避免出现问题

Android的核心通知机制是谷歌云消息(GCM),有文档记录。它内置于低层平台中,由移动网络直接支持,因此它通常是最有效的选择。它没有保证的延迟,因此它可能不适合非常时间敏感的消息,但它通常相当快——例如,至少和发送SMS一样快

有许多不同的商业产品以及自由和开放源码软件库以各种方式包装GCM,例如为非常旧(Froyo之前)的设备或未启用Google的设备提供支持,或在各种竞争移动平台之间提供单一的跨平台解决方案。Firebase、Parse和城市飞艇是我知道的一些

要使用GCM,您需要从Google获得API密钥。您可以使用此API密钥对GCM服务器的请求进行身份验证。拥有密钥后,发送通知就像向GCM服务器发送POST请求一样简单。GCM也支持XMPP,但我还没有使用它

在客户端,您的应用程序需要调用GCMAPI来注册消息。您提供用于创建API密钥的项目名称,以便GCM知道哪些服务器消息应该发送到您的客户端应用程序。一旦您的应用程序注册,传入的消息将作为意图发送给它,您可以通过实现BroadcastReceiver来接收


Android开发者网站上有一个引导您完成GCM过程的程序。

。。。Android版谷歌云消息……难道不可能设置一个时间限制,在这个时间限制之后,应用程序会自动检查服务器上的任何更新内容并显示通知吗。如果是,那么如何做。请提供帮助。是的,这是可能的,尽管除非您的服务器经常更新,否则它的效率将远远低于GCM解决方案。使用AlarmManager.setInexactRepeating()设置定期唤醒应用程序的警报。或者在棒棒糖或更高版本上,使用JobScheduler,它为您提供了更多选项(例如,仅当数据连接可用时才唤醒,这样您就不会在尝试联系无法访问的服务器时浪费电池)。