Привет, я использую диспетчер аварийных сигналов для определенного интервала времени в течение 3 минут, и я начал мониторинг. Он работал иногда, и вдруг я заметил, что нерегулярный интервал времени, который неверен! Вы можете видеть в прилагаемом журнале, где в «20-Jul-2016 12:22:03 pm» время меняется! Я подключил телефон, выключил экран и контролировал его! где каждые 3 минуты я попадаю на сервер и получаю ответ как 1. Но в одно время на сервер требуется 5 минут! Почему эта странная проблема произошла?Диспетчер аварийных сигналов не работает в определенный заданный интервал времени
Вот код.
public void startAt3() {
Intent alarmIntent = new Intent(ActivityTracking.this, AlarmReceiver.class);
pendingIntent = PendingIntent.getBroadcast(ActivityTracking.this, 0, alarmIntent, 0);
AlarmManager manager = (AlarmManager) getSystemService(Context.ALARM_SERVICE);
/* Set the alarm */
Calendar calendar = Calendar.getInstance();
calendar.setTimeInMillis(System.currentTimeMillis());
/* Repeating on every 3 minute interval */
manager.setInexactRepeating(AlarmManager.RTC_WAKEUP,
calendar.getTimeInMillis(),
180000L, pendingIntent);
String mydate = java.text.DateFormat.getDateTimeInstance().format(Calendar.getInstance().getTime());
Log.e("alarm",mydate);
}
AlarmReceiver:
public class AlarmReceiver extends WakefulBroadcastReceiver {//AlarmReceiver class
@Override
public void onReceive(Context context, Intent intent) {//onReceive method
String mydate = java.text.DateFormat.getDateTimeInstance().format(Calendar.getInstance().getTime());
Log.e("alarm",mydate);
Intent service = new Intent(context, SimpleWakefulService.class);//intent to call another class
// Start the service, keeping the device awake while it is launching.
startWakefulService(context, service);//service started
}
SimpleWakefulService:
public class SimpleWakefulService extends IntentService {
public SimpleWakefulService() {
super("SimpleWakefulService");//instantiates simpleWakefulService
}
@Override
protected void onHandleIntent(Intent intent) {
Log.e("simpleWakeful","simpleWakeful");
serviceCall(this); //here is downloadTaskMethod called and getting response as 1.
}
благодарит за ваш ответ. У меня есть одно сомнение из блога. в методе onReceive, что такое WrappedAlarmManager? что мне нужно использовать в моем коде? – Shadow
тоже промежуток_seven секунд вы упомянули право. что я должен дать? – Shadow
Код доступен на моей учетной записи Github: https://github.com/hoombar/android-training/tree/master/src/net/rdyonline/android_training/alarms –