在针对API 21的android API级别24中强制转换onALarmlistener的替代方法是什么

时间:2018-09-18 05:41:00

标签: android alarmmanager

这是我的代码

alarmStart = (AlarmManager) getSystemService(ALARM_SERVICE);
alarmStart.set(AlarmManager.RTC,startTime.getTime(),"alarm",
new AlarmManager.OnAlarmListener() 
             {
                @Override
                public void onAlarm() {                      
                    //On alarm code here
                }
             },null);

它表示强制转换为OnAlarmListener需要API级别24(当前最小值为21)。 但我希望它在所有API> = 21上运行。我应该对我的代码进行哪些更改?

1 个答案:

答案 0 :(得分:0)

根据the doc(强调我):

  

直接通知警报:请求者必须连续运行   从警报设置到发出警报的时间,或者   传递将失败。使用此选项只能设置一次警报   机制,不重复发出警报。

IMO,这只是Messenger之类的包装。

您可以通过将Messenger(将执行onAlarm代码)嵌入到PendingIntent中,并在PendingIntent发生故障时调用它来实现类似的功能。