Получить код, запускающий приемник Broadcast Receiver - PullRequest
0 голосов
/ 04 ноября 2019
class Receiver extends BroadcastReceiver {
    @Override
        public void onReceive(Context context, Intent intent) {
            doSth();
        }
}

В основном упражнении:

Intent intentA = new Intent(MainApplication.getAppContext(), Receiver.class);
Intent intentB = new Intent(MainApplication.getAppContext(), Receiver.class);
PendingIntent pendingIntentA = PendingIntent
                         .getBroadcast(MainApplication.getAppContext(),0,intentA,0);
PendingIntent pendingIntentB = PendingIntent
                         .getBroadcast(MainApplication.getAppContext(),0,intentB,0);
alarmManager.setRepeating(AlarmManager.ELAPSED_REALTIME_WAKEUP, SystemClock.elapsedRealtime() + 5000,
                60000, pendingIntentA);
alarmManager.setRepeating(AlarmManager.ELAPSED_REALTIME_WAKEUP, SystemClock.elapsedRealtime() + 5000,
                60000, pendingIntentB);

В функции doSth () я хочу знать, запущена ли эта трансляция с помощью intentA или intentB, как я могу это сделать без явного указания дополнительныхинформация в намерение ?, заранее спасибо.

1 Ответ

1 голос
/ 12 ноября 2019

Вы не можете. Потому что Intent точно такие же, и поэтому PendingIntent тоже точно такие же. Вам нужно будет что-то добавить в Intent для дифференциации: либо Intent ДЕЙСТВИЕ, Intent ДАННЫЕ, либо некоторые дополнительные функции.

...