I use a BroadcastReceiver with TIMEZONE_CHANGED action to reset alarms using AlarmManager just to make sure that the alarm runs exactly at the set time, not a few hours earlier or later, depending on the time zone change.I use a BroadcastReceiver with TIMEZONE_CHANGED