从实时Android Studio中获取Mysql数据库中的数据

时间:2016-03-25 06:42:04

标签: android mysql sockets google-cloud-messaging

我正在开发一个应用程序,用户可以将通知发送给另一个应用程序。

此外,我正在使用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是一个不错的选择吗?

2 个答案:

答案 0 :(得分:0)

你的建筑非常不正统。如果没有服务器推送这些GCM消息,您将无法获得GCM消息。您确定不想在设备和数据库之间构建服务器吗?您的设置看起来很容易受到攻击

答案 1 :(得分:0)

就像Bruno说的那样,需要有一台服务器才能让你的应用程序接收GCM消息,反之亦然。 docs have an example using Java Smack libraryxampp server。但是你不一定要使用Java。由于您从Android设备发送到服务器的上游消息必须是xmpp协议,如果您决定使用php,那么您可能需要查看支持xmpp协议的{{3}}。祝好运。