我正在开发一个应用程序,用户可以将通知发送给另一个应用程序。
此外,我正在使用php脚本检索数据并将数据发送到我的Mysql数据库。
使用Volley,用户可以在表“通知”中插入新行,但我不知道如何从应用程序中侦听该插入。
我的意思是,现在在数据库中发送通知的用户应该调用方法 getNotificationsFromDB()来获取通知并在RecyclerView上查看它们(如Facebook通知)。别无他法。如果他正在运行该应用程序,则只能知道通知。
例如,通知可能是这样的:'John已向您发送通知'。
此外,此线程在Notifications Fragment ...
上运行final Thread thread = new Thread(new Runnable() {
@Override
public void run() {
getNotificacionsFromDB();
try {
Thread.sleep(100000);
run();
} catch (InterruptedException e) {
e.printStackTrace();
}
}
});
thread.start();
但它应该从设备中消耗大量资源。一位朋友告诉我,它可能是在Android的'运行时'上运行的触发器。但实际上我并不了解他。
如何从MySql DB中侦听更新以创建推送通知? 有没有办法使用像IntentService这样的服务?或者像Facebook或Twitter这样的SocialApps如何管理数据库更新? GCM是一个不错的选择吗?
答案 0 :(得分:0)
你的建筑非常不正统。如果没有服务器推送这些GCM消息,您将无法获得GCM消息。您确定不想在设备和数据库之间构建服务器吗?您的设置看起来很容易受到攻击
答案 1 :(得分:0)
就像Bruno说的那样,需要有一台服务器才能让你的应用程序接收GCM消息,反之亦然。 docs have an example using Java Smack library。xampp server。但是你不一定要使用Java。由于您从Android设备发送到服务器的上游消息必须是xmpp协议,如果您决定使用php,那么您可能需要查看支持xmpp协议的{{3}}。祝好运。