Я установил диспетчер аварийных сигналов, который должен запускать ожидающее намерение в определенное время суток.Ожидание намерения, вызванное диспетчером аварийных сигналов, похоже, сразу срабатывает
Я поместил код в метод onCreate() моей основной деятельности, так как считал, что это лучшее место для его размещения?
Ниже приведен код:
Calendar calendar = Calendar.getInstance();
calendar.set(Calendar.HOUR_OF_DAY, 4); // trigger at 4am in the morning
calendar.set(Calendar.MINUTE, 0);
calendar.set(Calendar.SECOND, 0);
final Intent updateIntent = new Intent(Intent.ACTION_MAIN, null);
updateIntent.addCategory(Intent.CATEGORY_HOME);
final ComponentName cn = new ComponentName(
"com.example.myotherapp",
"com.example.myotherapp.MainActivity");
updateIntent.setComponent(cn);
updateIntent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
PendingIntent pIntent = PendingIntent.getActivity(getApplicationContext(), 0, updateIntent, 0);
AlarmManager alarm = (AlarmManager) getApplicationContext().getSystemService(Context.ALARM_SERVICE);
alarm.setRepeating(AlarmManager.RTC, calendar.getTimeInMillis(), AlarmManager.INTERVAL_DAY, pIntent); // launch at 4am, then every day (24 hours)
ТРЕВОГИ менеджер работает, я могу видеть, что огонь в указанное время, но также кажется, что В ожидании Намерение обжигают, как только эта база приложений начинается.
Что вызывает намерение стрелять сразу? И как я могу остановить это от этого?
Прежде всего проверить, если ваш 'Alarm' вы набор был добавлен, как вы ожидали В«командной строки»вставьте этот' ADB оболочки dumpsys alarm> alarms.txt'. И выполните поиск в файле alarms.txt с вашим именем пакета. Вы shold найти что-то вроде 'RTC_WAKEUP # 13: Сигнализация {41e7daf8 типа 0 your.package.name} типа = 0 при = + 8h42m36s649ms repeatInterval = 10800000 Count = 1 операции = PendingIntent {41c6e8b8: PendingIntentRecord {41e7e768 your.package .name broadcastIntent}} ' –