0

備忘録を書いています。アラーム マネージャーを使用して、スケジュールされた時間にリマインダー アクティビティを呼び出します。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

ウェイクロックが暗黙的に解放され、解放コマンドが例外を発生させるためだと思いますが、このように表示がオフになることはありません。

4

1 に答える 1