Я новичок в андроид platform.please помочь мне, как Broadcast Receiver и Намерение фильтр ведет себя в android.please объяснить простой линии или с example.thanks заранее ...Android-Broadcast Receiver и Намерение фильтр
ответ
вещательного приемника является классом в вашем Android проекта, который несет ответственность за получение всех намерений, которые направляются на другие виды деятельности, используя android.content.ContextWreapper.sendBroadcast(Intent intent)
в файле манифеста вы receicving активности, вы должны объявить что ваш вещательный приемник класс, например:
<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) {
...
}
Здесь все намерения, которые прошли через фильтр поступают, и вы можете получить к ним доступ с помощью параметра передается при вызове метода.
Что означает xyz.games.pacman.controller.BROADCAST? Это непонятно ... –
Это всего лишь пакет, который он использовал в качестве примера. – Bilthon
A 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);
Как это сделать между двумя устройствами, например, отправить некоторые данные с одного на другое устройство? Что я должен определить? – JPerk
@JПерк вам нужно будет обрабатывать соединение, но тогда вы можете определить пользовательское намерение получать данные. Существует хорошая вероятность, что вы не будете использовать существующее намерение системы получать пользовательские данные или не хотите обрабатывать данные по умолчанию, которые обычно содержат. – LoungeKatt
BroadcastReceiver
: «шлюз», с которой ваше приложение говорит к ОС Android, что ваше приложение заинтересовано в получении информации.
Intent-Filter
: Работает с BroadcastReceiver
и сообщает «Что» информация, которую она хочет получить. Например, ваше приложение хочет получать информацию об уровне заряда батареи.
- 1. Nfc и Намерение-фильтр
- 2. Намерение фильтр для PACKAGE_ADDED для конкретного пакета
- 3. Broadcast Receiver-Android
- 4. Намерение фильтр и отличается Экстра в
- 5. Разрешения Android устройства USB и Намерение фильтр
- 6. Android Manifest- Намерение фильтр и активность
- 7. Android AAR + Намерение Фильтр: осветление
- 8. Android-фильтр-намерение - пользовательское расширение
- 9. не могу понять намерение фильтр
- 10. Android Намерение фильтр не работает
- 11. BroadCast Receiver вызывает намерение через некоторое время android
- 12. Намерение Фильтр для просмотра веб-страниц
- 13. Намерение фильтр PATHPREFIX с вопросительным знаком
- 14. Намерение фильтр работает только один раз
- 15. Намерение фильтр с конкретным поставщиком MIME типа
- 16. Android: Фильтр Намерение для конкретного шаблона Uri
- 17. Намерение фильтр PATHPREFIX с «#» не работает
- 18. Намерение фильтр работает с Google+, но не Chrome и Facebook
- 19. Android Broadcast Receiver фильтр, когда файл был получен через bluetooth
- 20. Broadcast Receiver and services
- 21. Alarm Receiver и Android Manifest
- 22. Android BroadCast Receiver и GMC
- 23. Receiver unregisterProblem
- 24. C2DM Broadcast Receiver
- 25. Приложение не получает android.intent.action.DOWNLOAD_COMPLETE намерение
- 26. Ограничение Android Broadcast Receiver от конкретного приложения
- 27. Broadcast Receiver
- 28. радиовещательный приемник и до Намерение: Показать тост
- 29. Получение информации о событиях из календаря Broadcast Receiver умысел
- 30. Намерение не разрешает
Может возникнуть хорошая идея посмотреть здесь: http://stackoverflow.com/users/366916/bharathi и принять ответы на ваши последние вопросы. –