У меня есть одно действие, которое создает 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, возможно, это создает проблемы.
Спасибо за любые советы.
Просто создайте намерение своим действием.
Intent intent = new Intent("action"); [...] sendBroadcast(intent);
И подумайте о переименовании «действия» в нечто более значимое, например «com.my.package.actions.SOME_ACTION».
Если вы хотите, чтобы ваши компоненты приложения получали широковещательную передачу, используйте:
signature
(и укажите разрешение на использование для этого разрешения). Подробнее здесь . sendBroadcast(intent, permission)
и укажите разрешение в 1. Если намерение находится только в вашем приложении, подумайте об использовании LocalBroadcastManager