特定の日に繰り返すことができるように、複数のアラームを設定しています。Androidは再起動時にアラームを保存しないと聞きました。また、すべてのアラームを再スケジュールするBroadcastReceiver
ときに使用する必要があることも読みました。BOOT_COMPLETED
しかし、1日に5つのアラーム=異なる日に約35のアラームがスケジュールされている場合、再起動後にアラームを再スケジュールするようにBroadcastReceiverに指示するにはどうすればよいですか。それらをデータベースに保存する必要がありますか?それらをどのように保存しますか?または、BOOT_COMPLETEDが必要なすべてですか?このようなことの例はありますか?見つかりませんでした。
これは私が現在アラームと私の単純な受信機クラスを設定するために持っているものです。ここではBroadcastReceiverの代わりにServiceを使用しています。これは、BRは短いものだけを処理するために使用する必要があり、将来的には長いサウンドクリップを使用する必要があると聞いたためです。
private void setAlarm(){
Intent intent = new Intent(getBaseContext(), AlarmReceiver.class);
PendingIntent pendingintent = PendingIntent.getService(getBaseContext(), 2, intent, PendingIntent.FLAG_CANCEL_CURRENT);
AlarmManager am = (AlarmManager) getSystemService(ALARM_SERVICE);
am.set(AlarmManager.RTC_WAKEUP, System.currentTimeMillis() + sveskupa, pendingintent);
Toast.makeText(getBaseContext(), "Alarm is set", Toast.LENGTH_LONG).show();
}
AlarmReceiverクラス:
public class AlarmReceiver extends Service{
@Override
public IBinder onBind(Intent intent) {
// TODO Auto-generated method stub
return null;
}
@Override
public void onCreate() {
// TODO Auto-generated method stub
super.onCreate();
final MediaPlayer MPRadio1 = MediaPlayer.create(this, R.raw.radio3);
MPRadio1.start();
Toast.makeText(getBaseContext(), "OnCreate", Toast.LENGTH_LONG).show();
}