3分ごとにWebサービスを呼び出したいという点で、1つのアプリを実行しています。デバイスがタイムアウトしていない場合、すべてが正常に機能しています。しかし、タイムアウトになると、タイマーが機能しなくなったと思います。
この問題を解決する別の方法は何ですか。どうせなら3分の隙間が欲しいし、タイマーを使う必要もないし、タイマーの代わりになんでも使えます。
3分ごとにWebサービスを呼び出したいという点で、1つのアプリを実行しています。デバイスがタイムアウトしていない場合、すべてが正常に機能しています。しかし、タイムアウトになると、タイマーが機能しなくなったと思います。
そもそもこれはあまり良い解決策ではありませんでした。時計の刻みを見ているだけで、常にメモリの周りにぶら下がっているサービスを持たないでください。
この問題を解決する別の方法は何ですか
AlarmManager
_WAKEUP
を、スタイルのアラームと組み合わせて使用し、またはmy のいずれかWakefulBroadcastReceiver
を使用します。WakefulIntentService
あなたのサービスクラスで
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;
}
これで解決策が得られることを願っています。
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);