Я видел в нескольких SDK рекламных сетей Android, что они объявляют BroadcastReceiver
без фильтров намерений. Примерно так:
<receiver android:name="com.example.SampleReceiver" />
Я предполагаю, что такой приемник зафиксирует все возможные события. Поэтому я попытался сделать это сам и создалSampleReceiver
:
public class SampleReceiver extends BroadcastReceiver
{
@Override
public void onReceive(Context context, Intent intent)
{
System.out.println("Event captured: " + intent.getAction());
}
}
Я запустил приложение, попытался запустить некоторые события, выполняя различные действия на своем телефоне, и заметил, что onReceive()
не вызывался ни разу.
Итак, вопрос -в том, как работает такой BroadcastReceiver без фильтров намерений? Может быть, для этого требуется, чтобы фильтры намерений создавались с помощью кода? Если да, то как? Если нет, то почему он не получает никаких событий? Что тут происходит?