Androidスタジオで簡単な目覚まし時計アプリケーションを開発しようとしていますが、AlarmManager
とBroadcastReceiver
を正しく使用する方法がわかりません。私MainActivity
でAndroidスタジオアラームサービスが自動的に起動しない
私はAlarmManager
のために、私は必要なすべてをインスタンス化している(Intent
、PendingIntent
、と私はTimePicker
から受信した時刻を保持するためのカレンダーを使用しています)。私は、受信機がAlarmReceiver
と呼ばれ、そのonReceive()
で、私は、今のところ、テスト目的のために
Toast.makeText(context, "I'm running", Toast.LENGTH_SHORT).show();
Log.e("Receiver", "Receiver entered");
が、私は1つであることをアラーム時間を設定したボタンのonClick
イベントに
alarmManager.set(AlarmManager.RTC_WAKEUP, cal.getTimeInMillis(), pendingIntent);
を、このラインを持っています私はアプリをデバッグするたびに現在の時刻から1分です。時間を設定したら、AlarmManager
を設定するボタンを押します。時間がアラーム時間になると、ToastメッセージとLogメッセージは単独では表示されません。アラーム時刻である分の時間にボタンが押された場合にのみ表示されます。
たとえば、アラーム時刻が3:00で、現在の時刻が2:59で、ボタンを押してAlarmManager
を設定したとします。 3時になると、メッセージは表示されません。 3時の1分以内にボタンを押すと表示されます。
これは正常な動作ですか?もしそうなら、メッセージを自動的に表示して、後で着信音に拡張できるようにすべての設定が完了したらどうすればいいですか?
私は時間値が正しいとすることを確保している受信機は、このような何かにmanifest
サービスを開始するためにインテントを渡しましたか? – Dhruv
はい私はしました。私はテストの目的でmp3ファイルを再生するサービスを追加しました。問題は、現在時刻がアラーム時刻になっても自動的に開始しないことです。ボタンを押す必要があります – bitscuit