W kilku sieciach reklamowych z Androidem zobaczyłem, że deklarują one BroadcastReceiver
bez filtrów intencyjnych. Coś w tym stylu:Android BroadcastReceiver bez filtrów intencji
<receiver android:name="com.example.SampleReceiver" />
Zgaduję, że taki odbiornik przechwyciłby wszystkie możliwe zdarzenia. Więc próbowałem robić to sam i stworzył SampleReceiver
:
public class SampleReceiver extends BroadcastReceiver
{
@Override
public void onReceive(Context context, Intent intent)
{
System.out.println("Event captured: " + intent.getAction());
}
}
Mam uruchomiła aplikację, próbował odpalić kilka zdarzeń, wykonując różne działania na moim telefonie i zauważył, że onReceive()
nie nazywano jeszcze raz.
Pytanie brzmi - w jaki sposób działa program BroadcastReceiver bez filtrów intencyjnych? Może wymaga to tworzenia filtrów intencji za pomocą kodu? Jeśli tak to jak? Jeśli nie, to dlaczego nie otrzymuje żadnych zdarzeń? Co tu się dzieje?
Masz wielką ocena zapisu teraz :) – Jin35