【问题标题】:Android cannot pass intent extras to AlarmManagerAndroid 无法将 Intent Extras 传递给 AlarmManager
【发布时间】:2017-08-14 16:12:13
【问题描述】:

我以为this 会解决我的问题,但它没有。

我有这个代码来发送我的警报:

public void triggerAlarm() {
    AlarmManager alarmManager = (AlarmManager) getContext().getSystemService(ALARM_SERVICE);
    alarmManager = (AlarmManager) getContext().getSystemService(ALARM_SERVICE);
    Intent intent = new Intent(getContext(), AlarmReceiver.class);
    intent.putExtra("Id", nextDue.id.get() + "");
    String passed = intent.getStringExtra("Id");
    Log.d("DEBRRUG", "The extra im passing: " + passed);
    PendingIntent pendingIntent = PendingIntent.getBroadcast(getContext(), i++, intent, PendingIntent.FLAG_UPDATE_CURRENT);
    alarmManager.set(AlarmManager.RTC_WAKEUP, soonest.dueTime.get(), pendingIntent);
}

我的 DEBRRUG 语句表明传递的额外数是 8。

这是我的闹钟接收器:

@Override
    public void onReceive(Context context, Intent intent) {
        String passed = intent.getStringExtra("Id");
        Log.d("DEBRRUG", "The extra im receiving: " + passed);
    }

这里,我的 DEBRRUG statemnt 表明额外的 im 接收为 NULL。

注意:可能有趣的是,我的 triggerAlarm 方法是从我的 ContentProvider 中调用的。不知道这是否有助于您更好地理解我的问题。

【问题讨论】:

  • 我看到了,但我没有对 parcleable 对象做任何事情......??
  • 我在您的代码中看不出有什么问题。这就是我刚刚在 cmets 中写的原因。这不是一个答案。只是一个阅读建议。

标签: android android-intent android-alarms


【解决方案1】:

使用 intent.getExtras().getString("id")

【讨论】:

    【解决方案2】:

    我找到了。哇!我在我的代码的另一个区域发送了另一个警报,我没有添加额外的内容。

    做 ctrl f -> ".set(Alar" 让我找到那个小混蛋。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多