備忘録を書いています。アラーム マネージャーを使用して、スケジュールされた時間にリマインダー アクティビティを呼び出します。setTheme など、UI の初期化前に呼び出さなければならないものを使用しているため、古いものを再開するのではなく、Activity の新しいインスタンスが必要です。
Android Alarm an Clock からこのコードをコピーしました。
Intent i = new Intent(context, ActivityReminder.class)
.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_NO_USER_ACTION);
PendingIntent pi = PendingIntent.getActivity(context, 0, i, PendingIntent.FLAG_CANCEL_CURRENT);
am.set(AlarmManager.RTC_WAKEUP, scheduled_time, pi);
私は運がないので、ほとんどすべてのフラグを試しました。
また、状態のない単なるリマインダーであるため、アクティビティ onPause を終了しようとしましたが、そこで別の問題が発生します。
java.lang.runtimeexception wakelock under-locked
ウェイクロックが暗黙的に解放され、解放コマンドが例外を発生させるためだと思いますが、このように表示がオフになることはありません。