我有这种方法应该安排警报,但是当到达时间它不启动pendingintent?报警管理器不能正常工作
public void setAlarm(String name, long time) {
AlarmManager am = (AlarmManager) getSystemService(Context.ALARM_SERVICE);
Intent dialog = new Intent(this, SubActivity.class);
dialog.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
PendingIntent pi = PendingIntent.getActivity(this, 0, dialog, 0);
if (Build.VERSION.SDK_INT >= 19) {
if (System.currentTimeMillis() < time) {
am.setExact(AlarmManager.ELAPSED_REALTIME_WAKEUP, time, pi);
}else{
time+=(AlarmManager.INTERVAL_DAY*7);
am.setExact(AlarmManager.RTC_WAKEUP, time, pi);
}
} else {
am.setRepeating(AlarmManager.ELAPSED_REALTIME_WAKEUP, time, AlarmManager.INTERVAL_DAY * 7, pi);
}
}
** 1 ** - setExact()在API级别19之前不起作用。** 2 ** - 从API级别19开始,setRepeating()'是**不精确的。** 3 ** - 您的代码应该粘贴在**这里**,而不是'pastebin'。 –
好吧.. 我检查了我之前检查过SDK版本的代码,如果它是> = 19我使用setExact和setRepeating为低于19的版本我测试它在loli pop设备和设备API 16上但它不同时工作:/ –
'setExact()'只适用于API 19+。对于较低版本使用'set()'。 –