7. AlarmManager
• setExactAndAllowWhileIdle
• API 23 (Android 6.0)~
• “it will not dispatch these alarms more than about every minute (at which
point every such pending alarm is dispatched); when in low-power idle modes
this duration may be significantly longer, such as 15 minutes.”
• Exact 1 ( )
• → Doze Mode ( )
AlarmManagerCompat
19. •
•
AlarmSetting
Room SQLite Database
AlarmSchedule
Room SQLite Database
@Entity
data class AlarmSetting(
@PrimaryKey val id: String,
@Embedded(prefix = "time_") val time:
LocalTime,
val repeatDayOfWeek: Set<DayOfWeek>,
val enabled: Boolean,
…
@Entity
data class AlarmSchedule(
@PrimaryKey val id: String,
val alarmSettingId: String,
val time: DateTimeTz,
…
)
20. Foreground Service
• MediaPlayer
• Android 8.0
• Foreground Service
Android OS
BroadcastReceiverOSLEEP
ForegroundService
ForegroundNotification