我正在设置多个警报,以便可以在特定日期重复它们。现在我听说 Android 不会在重启时保存警报。我还阅读了BroadcastReceiver
应该在何时BOOT_COMPLETED
重新安排所有警报时使用。
但是,如果我每天有 5 个警报 = 在不同的日子安排大约 35 个警报,我如何告诉 BroadcastReceiver 在重新启动后重新安排警报。我需要将它们存储在数据库中还是?我该如何存储它们?还是我只需要 BOOT_COMPLETED ?这种事情有什么例子吗?我找不到它。
这是我目前用于设置警报和我的简单接收器类的东西。我在这里使用 Service 而不是 BroadcastReceiver,因为我听说 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();
}
警报接收器类:
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();
}