Менеджер сигналов тревоги срабатывает только один раз, а не каждые 5 минутAndroid

Форум для тех, кто программирует под Android
Ответить
Anonymous
 Менеджер сигналов тревоги срабатывает только один раз, а не каждые 5 минут

Сообщение Anonymous »

У меня есть сценарий, в котором я получаю координаты GPS каждые 5 минут. Для этого я использую Менеджер тревог. Но со вчерашнего дня меня затянуло, поскольку диспетчер сигналов тревоги сработал только один раз и больше не повторяется.
Вот код ниже
MainActivity. Класс

Код: Выделить всё

enter code here
private void setAlarm() {

Код: Выделить всё

    AlarmManager alarmManager = (AlarmManager) getSystemService(Context.ALARM_SERVICE);
Intent intent = new Intent(this, LocationAlarmReceiver.class);
intent.setAction("com.mhz.evs.ACTION_FETCH_LOCATION"+System.currentTimeMillis());
PendingIntent pendingIntent = PendingIntent.getBroadcast(this, 0, intent, PendingIntent.FLAG_IMMUTABLE|FLAG_UPDATE_CURRENT );

long interval = AlarmManager.INTERVAL_FIFTEEN_MINUTES / 3; // 5 minutes in milliseconds

long triggerAtMillis = System.currentTimeMillis() + interval;
if (alarmManager != null) {
alarmManager.setExactAndAllowWhileIdle ( AlarmManager.RTC_WAKEUP, triggerAtMillis, pendingIntent);
}
}
LocationReceiver.Class
публичный класс LocationAlarmReceiver расширяет BroadcastReceiver
{ Контекст контекста;

Код: Выделить всё

@Override
public void onReceive(Context context, Intent intent) {
this.context=context;
if (intent.getAction().equals("android.intent.action.BOOT_COMPLETED")) {
Intent alarmIntent = new Intent(context, LocationAlarmReceiver.class);
PendingIntent pendingIntent = PendingIntent.getBroadcast(context, 0, alarmIntent, PendingIntent.FLAG_IMMUTABLE);

AlarmManager alarmManager = (AlarmManager) context.getSystemService(Context.ALARM_SERVICE);
Calendar calendar = Calendar.getInstance();
calendar.setTimeInMillis(System.currentTimeMillis());
calendar.add(Calendar.MINUTE, 1);

if (alarmManager != null) {
alarmManager.setRepeating(AlarmManager.RTC_WAKEUP, calendar.getTimeInMillis(), 5 * 60 * 1000, pendingIntent);
}
} else {
Toast.makeText(context,"Triggered",Toast.LENGTH_SHORT).show();
Intent serviceIntent = new Intent(context, LocationService.class);
context.startService(serviceIntent);}
}
Manifest.Class Код работает нормально только один раз, но не повторяется каждые 5 минут. Если бы кто-то столкнулся с конкретной проблемой и решил ее, это могло бы мне помочь.

Подробнее здесь: https://stackoverflow.com/questions/785 ... ery-5-mint
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Android»