2017-07-07 17 views
0

AlarmClockAlarmManagerに関する議論が多々あり、アラームの設定、アプリの起動などについてはわかっています。次のようなシナリオです。私が開発しています私のAndroidの目覚まし時計アプリケーションでカスタムアラーム時計アプリでアラームが鳴ったときのカスタムアクティビティの起動Android

、私は、特定の時間にアラームを設定して、このような何曲再生するなど、他の設定に渡し、振動するようにしたい、など

1)何私はこれをするために使うべきですか? AlarmClockまたはAlarmManager

2)アラームが指定された時刻に消えたら、カスタムアクティビティを起動する方法を教えてください。再びAlarmClockまたはAlarmManagerの質問。

このカスタムアクティビティには時間が表示され、ユーザーが押すことができる「スリープ」または「スヌーズ」と表示されるボタンがあります(他のアラーム時計アプリのアラームが消えたときの動作)。アラームアプリが起動しないようにしたいのですが、アラームが鳴ったときに1つの画面しか表示されません。ユーザーがボタンを押すと、カスタムアビリティを閉じ、そのアプリに関連する他のものを開くことはしません。私は、ユーザーが何をしているのかに戻ることができるようにしたいと思います。

+0

あなたがdownvoteに行くなら、なぜ私が質問を改善できるのかコメントしてください:) – Michael

答えて

0

あなたはAlarmManagerであなたの仕事をすることができると思います。あなたが言うように、特定の時間のアラームを設定する場合は、setRepeating()を使用する必要があります。アラームが鳴ったときにデバイスを起動させたい場合は、RTC_WAKEUPタイプを選択し、そのタイプを望まない場合はRTCタイプを選択してください。 PendingIntentを定義して、何をしたいのか(サウンド、光、振動を再生する)、このアクティビティ内でこのインテントに付いていることを実行できます。その(YOUR_ACTIVITY)レイアウトでレイアウトを設計し、アラームをスヌーズ/キャンセルするためのボタンを配置する必要があります。上記のコード

private AlarmManager alarmMgr; 
private PendingIntent alarmIntent; 

Calendar calendar = Calendar.getInstance(); 
calendar.setTimeInMillis(System.currentTimeMillis()); 
calendar.set(Calendar.HOUR_OF_DAY, 14); 

alarmMgr = (AlarmManager)context.getSystemService(Context.ALARM_SERVICE); 
Intent intent = new Intent(context, YOUR_ACTIVITY.class); 
alarmIntent = PendingIntent.getBroadcast(context, 0, intent, 0); 

alarmMgr.setRepeating(AlarmManager.RTC_WAKEUP, 
     calendar.getTimeInMillis(), AlarmManager.INTERVAL_DAY, alarmIntent); 

14:00、それが日常14:00解雇し、あなたがそれをキャンセルするまでYOUR_ACTIVITYを実行されることを意味し、一日の間隔でアラームを設定します。これはGoogle Android Documentsの例です。

関連する問題