8

通知を表示する Android アプリを開発しています。どのように更新を確認し、Android 通知パネルに通知として表示するために、有限間隔 (たとえば 10 分間隔) で Web サービスをポーリングできますか。

4

4 に答える 4

10

サービスは必要ありませ。壊れたレコードのように感じます。このユース ケースでは、サービスは 95% の時間、何もせずにシステム リソースを使用し、さらに重要なことにバッテリを消耗します。

AlarmManager からのアラームを使用する同様の質問に対する私の回答を参照してください。

タスクを定期的に実行する (1 日 1 回/1 週間に 1 回)

編集:

通知を実装する方法については、Android 開発サイトのこのチュートリアルを参照してください: http://developer.android.com/guide/topics/ui/notifiers/notifications.html

于 2012-02-10T11:44:41.110 に答える
6

Google C2DMが提供する Cloud to Device Messaging サービスがあります。このサービスを使用して、登録されているすべてのモバイル デバイスにメッセージをプッシュできます。これにより、パフォーマンスが向上するだけでなく、サーバーを継続的にポーリングしている間にバッテリーが消耗しないようになります。

このシナリオでは、Web サービスを定期的にポーリングする Java クラスを記述し、C2DM サービスを使用してメッセージを Android スマートフォンにプッシュし、通知として表示することができます。リンクの Vogella によるこのチュートリアルをチェックしてください。または、更新された詳細を取得するためだけに Web サービスを使用している場合は、Web サービスを使用せずに C2DM プッシュ サービスを直接呼び出して、変更があるたびにすべての登録済みデバイスにメッセージをプッシュすることができます。

これが役に立ったことを願っています。:)

于 2012-02-10T12:01:49.893 に答える
2

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 秒ごとにヒットすることを意味します。

于 2012-02-10T11:35:52.793 に答える
0

タイマー付きのスレッドを持つサービスを定義し、タイムアウト時に webservice を呼び出します。

于 2012-02-10T11:35:27.490 に答える