我为android手机开发了一款新闻应用。每天都会有新的文章。我使用托管来存储文章,我的应用程序使用webview来加载这些信息。现在我的问题是,如何编写通知程序(不使用第三方服务),以便当新文章发布时,我的应用程序应该在android通知栏上生成通知。
发布于 2015-06-26 11:11:39
您应该看看Service类http://developer.android.com/guide/components/services.html
构建在Android框架中作为一个独立的线程工作(对用户不可见),这可以为你带来在设备启动时在android后台服务中运行任务的可能性,这应该包含从你正在交谈的主机获取文章的URI的代码
在此之后,您应该首先检查Notification类http://developer.android.com/reference/android/app/Notification.html
向android发送信号来通知用户你想要显示的信息是非常容易的,这个子类使得它更容易Notification.Builder
下面是一个例子
Notification noti = new Notification.Builder(mContext)
.setContentTitle("New mail from " + sender.toString())
.setContentText(subject)
.setSmallIcon(R.drawable.new_mail)
.setLargeIcon(aBitmap)
.build();发布于 2015-06-26 11:14:27
这是一个复杂的答案。要显示通知,有NotificationManager和许多用于显示内容、显示时间和显示方式的选项。
但是,由于你的信息是远程管理的,你需要一个推送服务来通知你的应用程序需要显示什么以及何时显示它。
Google Cloud Messaging (GCM)是一个很棒的第三方解决方案。但是,如果您想实现自己的服务,那么您正在讨论的是设置一个非常复杂的长轮询TCP服务。您可能希望至少使用XMPP和关联库之类的东西来开始使用。但即使是这样也只是非常基础的.
您将需要设备注册到服务器以“侦听”事件。您的服务器将需要处理这些连接,还需要发布事件。由于电话脱机,您将需要处理消息队列。这些都是GCM处理的部分。
之后,如果您想要个性化的内容,您将需要身份验证策略(谁不需要呢?)。如果你的应用很流行,你将需要分布式服务器等来处理注册、订阅请求和更改。您可能还需要服务器保存的用户设置(用于多个设备或当用户获得新电话时)。您可能还希望用户在Facebook或LinkedIn上设置帐户,然后您必须处理这些帐户。我已经使用GCM构建了一个基本的服务,剩下的工作非常繁重。
有许多第三方服务基本上对小公司/项目是免费的。比如Parse或QuickBlox。
发布于 2015-06-26 11:51:19
您应该研究一下Google Cloud Messaging (GCM)。您需要同时设置服务器和客户端才能使其正常工作。一般的步骤是。1.在google上注册GCM项目。2.您的app需要使用gcm api将设备注册到项目中。3.在服务器端,当您有新内容时,使用Gcm服务器api发送消息。4.在您的app上,当您收到gcm消息时,触发通知即可启动app。
https://stackoverflow.com/questions/31063920
复制相似问题