Отправлять трансляцию только на конкретную активность

У меня есть одно действие, которое создает BroadcastReceiver с IntentFilter в методе onCreate(...) :

 IntentFilter iFilter = new IntentFilter("action"); receiver = new BroadcastReceiver() { @Override public void onReceive(Context context, Intent intent) { } }; registerReceiver(receiver, iFilter); 

С другой стороны – IntentService , который должен отправить некоторые данные:

 Intent intent = new Intent(getApplicationContext(), receiver.class); intent.setAction("action"); [...] sendBroadcast(intent); 

Но, похоже, это не сработает. Передача не получена.
Мой класс обслуживания находится в файле android lib, возможно, это создает проблемы.

Спасибо за любые советы.

Solutions Collecting From Web of "Отправлять трансляцию только на конкретную активность"

Просто создайте намерение своим действием.

 Intent intent = new Intent("action"); [...] sendBroadcast(intent); 

И подумайте о переименовании «действия» в нечто более значимое, например «com.my.package.actions.SOME_ACTION».

Если вы хотите, чтобы ваши компоненты приложения получали широковещательную передачу, используйте:

  1. Зарегистрируйте разрешение в вашем манифесте с уровнем защиты signature (и укажите разрешение на использование для этого разрешения). Подробнее здесь .
  2. Используйте sendBroadcast(intent, permission) и укажите разрешение в 1.

Если намерение находится только в вашем приложении, подумайте об использовании LocalBroadcastManager