在我的应用程序中,我将时间(以毫秒为单位)传递给下面的此方法,但是当调用此方法时,我在清单中为此意图注册的 BroadCastReciever 会立即被调用,甚至在它开始的那一秒就关闭音频播放。(BroadcastReciever 的目的是停止音频播放,但在通过以下方法传递给警报管理器的选定时间...)
我尝试了类似的配置,包括 getService,但在为该组件设置警报管理器时,即使该组件仍然被立即调用。
我偶尔会遇到带有空指针异常的 ANR,因为停止播放的 BroadcastReciever 会尝试停止尚未初始化的 MediaPlayer 对象,因为在设置它时会立即调用停止播放的挂起意图。
private void makeAlarm(long timeInFuture){
Intent INTENT = new Intent("myapp.stopplayback");
AlarmManager alarmManager=(AlarmManager)this.getSystemService(Context.ALARM_SERVICE);
PendingIntent pi = PendingIntent.getBroadcast(this, 0, INTENT, 0);
alarmManager.set(AlarmManager.RTC_WAKEUP, timeInFuture, pi);
}