【问题标题】:Can Pending Intent request code be negative?Pending Intent 请求代码可以为负数吗?
【发布时间】:2015-09-26 10:50:24
【问题描述】:

我在整个互联网上进行了搜索,但没有找到太多帮助。我正在制作一个警报应用程序,在该应用程序中我使用警报管理器的挂起意图。我想根据 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 可以为负数吗?

【问题讨论】:

    标签: android android-studio broadcastreceiver android-pendingintent


    【解决方案1】:

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

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

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

    【讨论】:

      【解决方案2】:
      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));
      
      }
      

      【讨论】:

      • 请补充说明。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-03-07
      • 1970-01-01
      • 2013-10-13
      • 1970-01-01
      • 2022-11-18
      相关资源
      最近更新 更多