0

3分ごとにWebサービスを呼び出したいという点で、1つのアプリを実行しています。デバイスがタイムアウトしていない場合、すべてが正常に機能しています。しかし、タイムアウトになると、タイマーが機能しなくなったと思います。

この問題を解決する別の方法は何ですか。どうせなら3分の隙間が欲しいし、タイマーを使う必要もないし、タイマーの代わりになんでも使えます。

4

3 に答える 3

1

3分ごとにWebサービスを呼び出したいという点で、1つのアプリを実行しています。デバイスがタイムアウトしていない場合、すべてが正常に機能しています。しかし、タイムアウトになると、タイマーが機能しなくなったと思います。

そもそもこれはあまり良い解決策ではありませんでした。時計の刻みを見ているだけで、常にメモリの周りにぶら下がっているサービスを持たないでください。

この問題を解決する別の方法は何ですか

AlarmManager_WAKEUPを、スタイルのアラームと組み合わせて使用​​し、またはmy のいずれかWakefulBroadcastReceiverを使用します。WakefulIntentService

于 2013-08-05T13:11:36.900 に答える
1

あなたのサービスクラスで

  private static boolean isRunning = false;
  private Timer timer = new Timer();

@Override
public void onCreate() {
    super.onCreate();
    Log.i("SyncService", "Service Started.");

    int interval = 180000;// 3minutes
    timer.scheduleAtFixedRate(new TimerTask() {
        public void run() {
            //your process
        }
    }, 0, (long) interval);
    isRunning = true;
}

これで解決策が得られることを願っています。

于 2013-08-05T13:17:22.300 に答える
1

RepeatAlarm を使用します。

private  PendingIntent pendingIntent=null;
    static Intent i;
    public static AlarmManager manager ;

pendingIntent = PendingIntent.getService(con, 0,
                        intent, 0);
                Calendar cal = Calendar.getInstance();
                manager = (AlarmManager) con.getSystemService(Context.ALARM_SERVICE);
                manager.setRepeating(AlarmManager.RTC_WAKEUP,
                        cal.getTimeInMillis(), (3*60*1000),
                        pendingIntent);
于 2013-08-05T13:12:14.083 に答える