【问题标题】:How to Create a Distinct PendingIntents如何创建不同的 PendingIntents
【发布时间】:2015-06-11 01:37:09
【问题描述】:

我有一个应用程序允许用户创建提醒以提醒他们将来。我遇到的问题是,当用户创建多个提醒时,未决意图仅在创建的最新提醒时触发,并显示最早的提醒内容,即:

任务 1,设置为下午 4 点

任务 2,设置为下午 5 点

任务 3,设置为下午 6 点

直到下午 6 点才会出现提醒,此时会显示任务 1。

我认为这是由于 PendingIntent 缺乏唯一性:

public class ReminderManager {

    private Context mContext; 
    private AlarmManager mAlarmManager;

    public ReminderManager(Context context) {
        mContext = context; 
        mAlarmManager = (AlarmManager)context.getSystemService(Context.ALARM_SERVICE);
    }

    public void setReminder(Long taskId, Calendar when) {

        Intent i = new Intent(mContext, OnAlarmReceiver.class);
        i.putExtra(RemindersDbAdapter.KEY_ROWID, (long)taskId); 

        PendingIntent pi = PendingIntent.getBroadcast(mContext, 0, i, PendingIntent.FLAG_ONE_SHOT); 

        mAlarmManager.set(AlarmManager.RTC_WAKEUP, when.getTimeInMillis(), pi);
    }
}

如何确保每条提醒都是独一无二的,并能按时获得正确的时间?

【问题讨论】:

    标签: android alarmmanager android-pendingintent


    【解决方案1】:

    您需要为 requestCode 参数提供除 0 之外的其他内容。尝试将其设为每个请求的唯一 ID。

    【讨论】:

      猜你喜欢
      • 2016-03-29
      • 1970-01-01
      • 2022-11-05
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多