У меня есть класс
public class Receiver extends BroadcastReceiver{
// with onReceive() method(overridden)
public void onReceive(Context context, Intent intent)
{...
}
}
В своей деятельности я использую класс Receiver для прослушивания трансляции.
//Block1
Intent intent = new Intent(Test.this, Receiver.class);
PendingIntent pIntent = PendingIntent.getBroadcast(Test.this, 0, intent, 0);
AlarmManager am = (AlarmManager) getSystemService(ALARM_SERVICE);
am.set(AlarmManager.RTC_WAKEUP, 2000, pIntent);
//Block2
IntentFilter filter= new IntentFilter(Intent.ACTION_SCREEN_ON);
filter.addAction(Intent.ACTION_SCREEN_OFF);
mReceiver = new Receiver();
registerReceiver(mReceiver, filter);
Теперь проблема в обоих блоках из моей деятельностииспользуют тот же класс приемника для трансляции.
Я планировал использовать Intent.putExtra()
, чтобы определить, какое намерение вызывает onReceive (), но оно доступно только для Intents, но не для IntentFilter.
Так как мне отличить вызовы onReceive() в методе onReceive ()?