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

问题描述 投票:0回答:1

这是我的代码

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上运行。我应该对代码进行哪些更改?

android alarmmanager
1个回答
0
投票

根据the doc(强调我):

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

IMO这只是Messenger或类似内容的某种包装。

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

© www.soinside.com 2019 - 2024. All rights reserved.