Дополнения к намерениям пусты в onReceive BroadcastReceiver

Denis Perfomer спросил: 13 октября 2017 в 07:01 в: android

Я хочу получить некоторые аргументы из Intent в методе onReceive () класса BroadcastReceiver. Но есть только int ALARM_COUNT = 1, хотя я поставил два аргумента: мой объект Parcelable Alarm и test int (для случая, когда есть какая-то проблема с объектом alarm).

Я установил alarm следующим образом:

private void setCurrentAlarm(Alarm alarm) {
        long time = System.currentTimeMillis() + getClosestTimeDifference(alarm);        mAlarmManager.set(AlarmManager.RTC_WAKEUP, time, createPendingIntent(alarm));
    }

Существует способ создания переменной PendingIntent:

private PendingIntent createPendingIntent(@NonNull Alarm alarm) {
        Intent intent = new Intent(mContext, AlarmBroadcastReceiver.class);        intent.putExtra(KEY_ALARM, alarm);
        intent.putExtra("TEST", 1010120012);        return PendingIntent.getBroadcast(mContext, alarm.getId(), intent, PendingIntent.FLAG_UPDATE_CURRENT);
    }

И метод onReceive () в моем классе AlarmBroadcaseReceiver:

    @Override
    public void onReceive(Context context, Intent intent) {
           Alarm receivedAlarm = intent.getParcelableExtra(KEY_ALARM); //is always null
           int receivedInt = intent.getIntExtra("TEST", -1); //the same empty, -1
    }

Как вы можете видеть, Intent содержит только некоторые дополнительные ALARM_COUNT, но нет никаких дополнительных.

Что делать? Как я могу получить их?


0 ответов