我具有长型值的PendingIntent.getBroadcast方法(int requestCode)的解决方案是什么?

时间:2019-06-01 20:27:37

标签: android alarmmanager

现在的问题是,我将主ID用作System.currenttimemillis(),它显然需要使用长型变量。现在基于主ID,我正在设置警报,以便它也将是唯一的。

现在,当我将类型从long转换为int时,由于数值较大而我得到了错误的提示。那我该怎么办?

注意: 1.请不要说将我的ID更改为int,这是不可能的。 2.类型转换不起作用。 3.我不能每次都发送相同的ID,现在不可能。

 public void createExactAlarm(Context context, Calendar calendar, long id) {
        AlarmManager mAlarmManager;
        mAlarmManager = (AlarmManager) context.getSystemService(Context.ALARM_SERVICE);

        Intent intent = new Intent(context, AlarmReceiver.class);
        intent.putExtra(REMINDER_ID, id);

        /*TODO:-> FLAG_UPDATE_CURRENT is necessary to work in edit case*/
        showLog("In AR: " + (int) id);

        mPendingIntent = PendingIntent.getBroadcast(context, (int) id, intent, PendingIntent.FLAG_UPDATE_CURRENT);

        /*TODO:-> set & setExact & setRepeating working in all cases*/
        mAlarmManager.setExact(AlarmManager.RTC, calendar.getTimeInMillis(), mPendingIntent);

    }

0 个答案:

没有答案