Pending Intent 请求代码可以为负数吗?

Can Pending Intent request code be negative?

我在整个互联网上都进行了搜索,但没有找到太多帮助。我正在制作一个警报应用程序,其中我正在使用警报管理器的未决意图。我想根据 sqlite 数据库的特定 id table 设置两个警报。对于第一个警报,我将待定意图请求代码设置为正 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 可以为负数吗?

通常_id标记为autoincrement。根据 sqlite 文档,对于 autoincrement,如果您没有明确插入负值,则为此列生成的值始终为正值。如果您明确插入负值,_id 可能为负数。

Can Pending Intent request code be negative?

文档没有提到负值。该方法接受一个 int 值,并且在 java 中,所有原始类型都已签名。所以,我们要假设请求码可以取负值

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));

}