Вот код ниже
MainActivity. Класс
Код: Выделить всё
enter code here
Код: Выделить всё
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);
}
}
публичный класс 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);}
}
Код: Выделить всё
Подробнее здесь: https://stackoverflow.com/questions/785 ... ery-5-mint
Мобильная версия