私は、次の場合のベストプラクティスと考えています:プッシュ通知にサービスを使用する必要がありますか?
サーバーから取得したメッセージをリッスンし、トーストメッセージでユーザーに通知するソケットを開いたままにしておく必要があります。私が使用してメッセージを送ることができるこの方法を
:
私が最初に考えたのは、シングルトンを使用して、私はそこに、サーバとの通信に使用するクライアントを格納しに行ってきました
MySingletonHere.getInstance().sendMessage("message");
私はおそらく意志の問題をここでは、ソケットが着信メッセージを受信したときに何らかの処理を行っています。それを処理する
一つの方法は、活動中にこのようなものになるだろう:
それは1のように感じることはありませんので、これは「良い」解決策と見なされている場合は私がお願いしたいと思いますMySingletonHere.getInstance().setMessageHandler(new MessageHandler() {
public String handleMessage(String m) {
Toast.make ...
}
});
。おそらくこのような状況に対処できるアンドロイドコンポーネントがあります。私はアンドロイドの開発についてはあまりよく分かりませんが、私が正しく理解すれば、サービスはこのようなことをすることができますか?
おかげ
あなたは[C2DM](code.google.com/android/c2dm/)を考えましたか? – Phil
私たちはC2DMを考えましたが、それは小規模な学校プロジェクトであり、プッシュ通知は最も重要な部分ではないので、私たちは簡単に独自のサーバー/クライアントを作成しました。コミュニケーションはうまくいきました。私は、ほとんどの人がこのようなバックグラウンドメッセージを処理するために使用するものについて興味がありました(必ずしもプッシュ通知ではない)。 – geoffreydv