(後記。TIME_SET等ではAlarmが消えることはありませんでした。コメント参照してください)
Androidのアプリを作っていた。
AlarmManagerでServiceを定期的に起動するようにしたが、気がついたら、Serviceが動かなくなっている。
なぜ? とググっていたら・・・
rokuta96のAndroidアプリ開発 アラーム3
システム時間変更イベントで、アラームがクリアされてしまうとのこと。
えーそんなのアリかよ・・・でもまあそういうイベント時にクリアしたくなるOSの気持ちもわかるな・・・
え、でもおれ今回のアプリを実験開始してから時刻設定とかタイムゾーン変更とかしたことないし、おかしくね?・・・・・・・・・あっ!

日付と時刻…ネットワーク自動設定!これかあ!
さっそくBroadcastReceiverを付けて確認してみたら、たしかに、ときどき、TIMEZONE_CHANGED や TIME_SET が発生していた。
これ気をつけないといけないのね。
2017/10 追記。
久しぶりに AlarmManagerを使ってみたら、setInexactRepeating() で、ぜんぜん、指定したインターバルで呼ばれない。
ドキュメントを見る…
intervalMillis
interval in milliseconds between subsequent repeats of the alarm. Prior to API 19, if this is one of INTERVAL_FIFTEEN_MINUTES, INTERVAL_HALF_HOUR, INTERVAL_HOUR, INTERVAL_HALF_DAY, or INTERVAL_DAY then the alarm will be phase-aligned with other alarms to reduce the number of wakeups. Otherwise, the alarm will be set as though the application had called setRepeating(int, long, long, PendingIntent).
As of API 19, all repeating alarms will be inexact and subject to batching with other alarms regardless of their stated repeat interval.
API 19(Android 4.4 kitkat)以前は、INTERVAL_FIFTEEN_MINUTES、INTERVAL_HALF_HOUR、INTERVAL_HOUR、INTERVAL_HALF_DAY、またはINTERVAL_DAYのいずれかである場合、アラームは他のアラームと位相調整されてウェイクアップの回数を減らします。 それ以外の場合は、アプリケーションがsetRepeating(int、long、long、PendingIntent)を呼び出したかのようにアラームが設定されます。
API 19では、繰り返されるすべてのアラームは、指定された繰り返し間隔に関係なく、不正確で、他のアラームとのバッチ処理が行われます。
まじかよ…ひでえな。