我在互联网上搜索过但没有找到太多帮助。我正在制作一个报警应用程序,我正在使用报警管理器的待定意图。我想根据sqlite数据库表的特定id设置两个警报。对于第一个警报,我将待处理的意图请求代码设置为正ID,对于第二个意图,我将待处理的意图请求代码设置为负id(-1 * id)。 这是代码
PendingIntent pi = PendingIntent.getBroadcast(context, _id, i, PendingIntent.FLAG_UPDATE_CURRENT);
PendingIntent pi = PendingIntent.getBroadcast(context, -1 *_id, i, PendingIntent.FLAG_UPDATE_CURRENT);
_id可以是否定的?
答案 0 :(得分:6)
通常_id
标记为autoincrement
。根据sqlite文档,对于autoincrement,如果未明确插入负值,则为此列生成的值始终为正值。如果您明确插入负值,_id
可能是否定的。
Pending Intent请求代码是否为负数?
文档没有说明负面价值观。该方法接受int
值,并且在java中,所有基元类型都已签名。因此,我们必须假设请求代码可以假设负值
答案 1 :(得分:-1)
List<PendingIntent> plist;
void setReminder()
{
plist = new ArrayList<>();
Intent alertIntent = new Intent(this, Notify.class);
AlarmManager alarmManager = (AlarmManager) getSystemService(Timetableconfig.ALARM_SERVICE);
PendingIntent pendingIntent = PendingIntent.getBroadcast(this, list.size(), alertIntent, PendingIntent.FLAG_UPDATE_CURRENT);
plist.add(pendingIntent);
alarmManager.setInexactRepeating(AlarmManager.RTC_WAKEUP, toofix.getTimeInMillis() - 300000, 7 * 24 * 60 * 60*1000, plist.get(plist.size()-1));
}