通知を表示する Android アプリを開発しています。どのように更新を確認し、Android 通知パネルに通知として表示するために、有限間隔 (たとえば 10 分間隔) で Web サービスをポーリングできますか。
4 に答える
サービスは必要ありません。壊れたレコードのように感じます。このユース ケースでは、サービスは 95% の時間、何もせずにシステム リソースを使用し、さらに重要なことにバッテリを消耗します。
AlarmManager からのアラームを使用する同様の質問に対する私の回答を参照してください。
タスクを定期的に実行する (1 日 1 回/1 週間に 1 回)
編集:
通知を実装する方法については、Android 開発サイトのこのチュートリアルを参照してください: http://developer.android.com/guide/topics/ui/notifiers/notifications.html
Google C2DMが提供する Cloud to Device Messaging サービスがあります。このサービスを使用して、登録されているすべてのモバイル デバイスにメッセージをプッシュできます。これにより、パフォーマンスが向上するだけでなく、サーバーを継続的にポーリングしている間にバッテリーが消耗しないようになります。
このシナリオでは、Web サービスを定期的にポーリングする Java クラスを記述し、C2DM サービスを使用してメッセージを Android スマートフォンにプッシュし、通知として表示することができます。リンクの Vogella によるこのチュートリアルをチェックしてください。または、更新された詳細を取得するためだけに Web サービスを使用している場合は、Web サービスを使用せずに C2DM プッシュ サービスを直接呼び出して、変更があるたびにすべての登録済みデバイスにメッセージをプッシュすることができます。
これが役に立ったことを願っています。:)
exの有限間隔後にそのWebサービスを呼び出すことができるタイマーを使用します
Timer waitingTimer = new Timer();
waitingTimer.schedule(new TimerTask()
{
@Override
public void run()
{
runOnUiThread(new Runnable()
{
public void run()
{
// code to hit xml after time interval
}
});
}
},0,20000); // mention time interval after which your xml will be hit.
ここで 20000 は、20 秒ごとにヒットすることを意味します。
タイマー付きのスレッドを持つサービスを定義し、タイムアウト時に webservice を呼び出します。