Intereting Posts
Не удалось установить параметры камерыПараметры: FATAL EXCEPTION Модернизация не может подключиться к локальному веб-серверу на порту 3000 Уведомление от IntentService – исключение NullPointerException при получении контекста Samsung Galaxy Camera Android API – пользовательские приложения для камер VideoView Полный экран в приложении для Android Android-x86 не будет установлен на VirtualBox Не удалось выбрать строку в списке в раскрывающемся списке 4.1, но работает в android 5.0 Android – Google Play Game Service, Не удалось найти метод android.view.View.getDisplay Выбор лучшей базы данных для мобильного приложения Несколько элементов MapActivity в стеке Аргумент типа обобщенного метода Java GetIntent () в onResume () всегда возвращает одно и то же действие, как его использовать? Возможно ли в android определить константы в XML, которые различаются в зависимости от конфигурации Библиотека AppCompat 23.2.1 не работает с espresso v2.2.2 Не удалось найти свойство «компилировать» на org.gradle.api.internal.artifacts.dsl.dependencies.DefaultDependencyHandler_Decorated@397740e0

Android-Broadcast Receiver и Intent Filter

Я новичок в android platform.please, помогите мне в том, как Broadcast Receiver и Intent Filter ведет себя в android.please, объясните в простой строке или с помощью example.thanks заранее …

Широковещательный приемник – это класс в вашем проекте Android, который отвечает за получение всех намерений, которые отправляются другими действиями с помощью android.content.ContextWreapper.sendBroadcast(Intent intent)

В файле манифеста, который вы получаете, вы должны объявить, который является вашим широковещательным приемником, например:

 <receiver android:name="xyz.games.pacman.network.MessageListener"> <intent-filter> <action android:name="xyz.games.pacman.controller.BROADCAST" /> </intent-filter> </receiver> 

Как вы можете видеть, вы также определяете фильтр намерений здесь, то есть, какие намерения должны приниматься приемником широковещания.

Затем вам нужно определить класс, который расширяет BroadcastReceiver. Это класс, который вы определили в файле манифеста:

 public class MessageListener extends BroadcastReceiver { /* (non-Javadoc) * @see android.content.BroadcastReceiver#onReceive(android.content.Context, android.content.Intent) */ @Override public void onReceive(Context context, Intent intent) { ... } 

Здесь принимаются все намерения, которые передаются через фильтр, и вы можете получить к ним доступ, используя параметр, переданный в вызове метода.

BroadcastReceiver может быть зарегистрирован двумя способами: dynamic или static . Static – это не что иное, как объявление действия через intent-filter в AndroidManifest.xml для регистрации нового класса BroadcastReceiver . Dynamic регистрирует приемник из другого класса. intent-filter определяет, какое действие должно быть принято.

Чтобы создать BroadcastReceiver, вам необходимо расширить класс BroadcastReceiver и переопределить onReceive(Context,Intent) . Здесь вы можете проверить входящие намерения с помощью Intent.getAction() и выполнить код соответственно.

Как новый класс, статический был бы

 public class Reciever1 extends BroadcastReceiver { @Override public void onReceive(Context context, Intent intent) { String str = intent.getAction(); if(str.equalsIgnoreCase("HELLO1")) { Log.d("Abrar", "reciever...."); new Thread() { public void run() { Log.d("Abrar", "reciever...."); System.out.println("Abrar"); } }.start(); } 

Или, если он помещен в существующий класс, он динамически называется

 intentFilter = new IntentFilter(); intentFilter.addAction("HELLO1"); //---register the receiver--- registerReceiver(new Reciever1(), intentFilter); 

BroadcastReceiver : «Шлюз», с помощью которого ваше приложение сообщает ОС Android, что ваше приложение заинтересовано в получении информации.

Intent-Filter : работает с BroadcastReceiver и сообщает «What», которую он хочет получить. Например, ваше приложение хочет получать информацию об уровне заряда батареи.