2
私はAlarmManagerで5分ごとに呼び出すサービスを使用して慣性センサからデータを収集するAndroid Appを開発しています。このサービスには、1分だけデータを収集するタイマーがあります。だから私は1分のデータを収集し、4分間スリープ状態にしたい(ループプロセス)。問題は、setRepeating()を使用したAlarmManagerが、API> 19で正確に(1分以上遅れて)表示されないことです。AlarmManagerがAPIを使用して正確な繰り返し間隔を設定しました。> 19
public void startservice(View view){
AlarmManager scheduler = (AlarmManager) getSystemService(ALARM_SERVICE);
Intent intent = new Intent(getApplicationContext(), SensorLogger.class);
PendingIntent scheduledIntent = PendingIntent.getService(getApplicationContext(), 0, intent, 0);
scheduler.setRepeating(AlarmManager.RTC_WAKEUP, System.currentTimeMillis(), 60000 * 5, scheduledIntent);
}
などのサービス何かに:
@Override
public int onStartCommand(Intent intent, int flags, int startId) {
timer.scheduleAtFixedRate(new stoptask(), 60000, 60000);
...
return START_NOT_STICKY;
}
private class stoptask extends TimerTask
{
public void run()
{
...
timer.cancel();
stopSelf();
}
}
おかげポストの多くではなく、明確な解決策は、私が持っているMainActivityでは...あります!