2016-03-25 16 views
1

私は別のユーザーに通知を送信できるアプリを開発しています。Mysqlデータベースからリアルタイムでデータを取得Android Studio

また、PHPスクリプトを使用して、MySQLデータベースにデータを取得して送信しています。

Volleyを使用すると、ユーザーはテーブル '通知'に新しい行を挿入できますが、アプリからその挿入を聞く方法はわかりません。

つまり、データベースで通知を送信したユーザーは、getNotificationsFromDB()を呼び出して通知を取得し、RecyclerView(Facebook通知など)で表示する必要があります。他の方法はありません。また、アプリを実行している場合にのみ通知について知ることができます。

たとえば、「Johnさんが通知を送信しました」という通知があります。

また、このスレッドは

final Thread thread = new Thread(new Runnable() { 
     @Override 
     public void run() { 
      getNotificacionsFromDB(); 
      try { 
       Thread.sleep(100000); 
       run(); 
      } catch (InterruptedException e) { 
       e.printStackTrace(); 
      } 
     } 
    }); 
    thread.start(); 

...通知フラグメント上で実行されます。しかし、それは、デバイスからのリソースを大量に消費する必要があります。友人はアンドロイドの「ランタイム」を実行しているトリガーと一緒にいるかもしれないと教えてくれました。しかし、実際に私は彼を理解していませんでした。

MySql DBからの更新をリッスンしてプッシュ通知を作成するにはどうすればよいですか? IntentServiceのようなサービスを使用する方法はありますか? FacebookやTwitterなどのSocialAppがデータベースの更新を管理する方法は? GCMは良い選択ですか?

答えて

0

Brunoのように、アプリがGCMメッセージを受信するためにはサーバを必要とし、逆も同様です。 docs have an example using Java Smack library。しかし、必ずしもJavaを使う必要はありません。あなたがAndroidデバイスからサーバーに送信するアップストリームメッセージでなければならないので、もしあなたがxmppプロトコルをサポートしているxampp serverを調べたいと思うかもしれません。がんばろう。

+1

はい、私はそれをdit:Dはありがとう、しかし、それは私のホスト上の残りのapi/phpスクリプトにvolleyを使用してデータを送信するのがベストプラクティスであるかどうかわからないし、データをgcmサーバに送信し、アプリケーションは通知を聞いてそれを表示します。ところで、GCMが最高です! –

+0

私はなぜそうは見ません。あなたの質問に答えた場合は、私の回答を受け入れた回答として受け入れてください。ありがとうございました。 –

0

あなたのアーキテクチャはまったく正統ではありません。サーバーがGCMメッセージをプッシュすることなく、GCMメッセージを作成することはできません。デバイスとデータベースの間にサーバーを構築したくないのですか?あなたの設定は攻撃に対して非常に脆弱です。

+0

答えをありがとう。だから、私はGCMを使用する場合、私は私がDBに挿入し、私はGCMサーバーに呼び出すと、ユーザーが私が通知を送信したデバイスに答えるにログインするPHPスクリプトを作成する必要があります?私は始める方法がわからない –

関連する問題