8

残りの呼び出しを使用してサーバーからデータを取得し、それをビューに追加するアプリに取り組んでいます。すべての初期データを正しく取得します。私はそれを行うために AsyncTask を使用します。

ここで、サーバーから定期的に (たとえば 2 分) 新しいデータをフェッチしてビューに追加したいと考えています。Android のサーバーから定期的にデータをフェッチ (ポーリング) します。

4

3 に答える 3

3

これを行うには、AlarmManager クラスをチェックアウトできます。

Intent intent = new Intent(this, MyAlarmManager.class);

long scTime = 60*2000;//2mins

PendingIntent pendingIntent = PendingIntent.getBroadcast(this, 0, intent, 0);

AlarmManager alarmManager = (AlarmManager) getSystemService(ALARM_SERVICE);

alarmManager.set(AlarmManager.RTC_WAKEUP, System.currentTimeMillis() + scTime, pendingIntent);

これがアラームマネージャです--

public class MyAlarmManager extends BroadcastReceiver {

    Context _context;
        @Override
        public void onReceive(Context context, Intent intent) {
            _context= context;
            //connect to server..

        }
}

AlarmManager が「起動」されるたびに、サーバーに再度接続し、受信したばかりのデータを入力します。

http://developer.android.com/reference/android/app/AlarmManager.html

于 2010-08-31T10:07:00.587 に答える
1

これを行う最善の方法は、サーバーからデータをフェッチするサービスを作成することです。その後、アクティビティが実行されている場合、サービスはフェッチされたデータを使用してアクティビティにインテントを送信できます。

または、アプリの実行時にサービスを実行し、起動時にアクティビティをサービスにバインドします。次に、AIDL などを使用してサービスと通信します。
(たとえば、サービスがデータをフェッチするたびに、アクティビティでコールバック関数を起動できます)

于 2010-08-31T09:44:48.760 に答える