/ / Doplnky pre zámery sú v priečinku onReceive BroadcastReceiver prázdne - android, android-intent, alarmmanager, android-broadcastreceiver

Doplnky v úmysle sú prázdne v aplikáciiReceive of BroadcastReceiver - Android, Android-zámer, alarmmanager, android-broadcastreceiver

chcem získať nejaké argumenty od Intent v onReceive () metóda triedy BroadcastReceiver. Ale existuje iba int ALARM_COUNT = 1, aj keď som uviedol dva argumenty: môj objekt Parcelable Alarm a test int (pre prípad, že dôjde k problému s objektom alarmu).

Nastavil som budík takto:

private void setCurrentAlarm(Alarm alarm) {
long time = System.currentTimeMillis() + getClosestTimeDifference(alarm);

mAlarmManager.set(AlarmManager.RTC_WAKEUP, time, createPendingIntent(alarm));
}

Takto vytvorím premennú 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);
}

A metóda onReceive () v mojej triede 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
}

Ako vidíte, zámer obsahuje iba niektoré ALARM_COUNT extra, ale moje komparzy nie sú.

Čo robiť? Ako ich môžem získať?

odpovede:

0 pre odpoveď č. 1

Ahoj Denis, môžeš poslať hodnotu ako String a potom urobiť parse na int.

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);
}

@Override
public void onReceive(Context context, Intent intent) {
Alarm receivedAlarm = intent.getParcelableExtra(KEY_ALARM); //is always null
Bundle extras = intent.getExtras();
String testString = (String) extras.get("TEST");
int test = Integer.parseInt(testString)
}

Hodnotu „TEST“ budete mať v metóde onReceive