Опитвам се да изпратя излъчване от IntentService към дейността, която я стартира, ето как регистрирам приемника в дейността:
private BroadcastReceiver mInitializer;
@Override
protected void onCreate(Bundle savedInstanceState) {
....
mInitializer = new InitializationReceiver();
IntentFilter initializer = new IntentFilter();
initializer.addAction(IntentConstants.Tasks.INITIALIZE);
initializer.addAction(IntentConstants.Initialization.INITIALIZE_IS_FIRST_START);
initializer.addAction("test");
registerReceiver(mInitializer, initializer);
....
}
private class InitializationReceiver extends BroadcastReceiver {
private InitializationReceiver() {
if(D) Log.d(TAG, "Instantiated InitializationReceiver");
}
@Override
public void onReceive(Context context, Intent intent) {
if(D) Log.d(TAG, "Received broadcast, intentAction: "+intent.getAction());
if(intent.getAction().equals(IntentConstants.Tasks.INITIALIZE)) {
if(D) Log.d(TAG, "Received Initialize Intent");
}
if(intent.getAction().equals(IntentConstants.Initialization.INITIALIZE_IS_FIRST_START)) {
if(D) Log.d(TAG, "Received First Start Intent");
}
}
}
Ето как изпращам излъчването от IntentService:
if(D) Log.d(TAG, "Got here");
Intent testIntent = new Intent("test");
sendBroadcast(testIntent);
- Услугата е създадена, защото „Стигнах тук“ се регистрира,
- BroadcastReceiver се инициализира преди създаването на услугата и
- дейността е видима, когато излъчването е изпратено.
- излъчването не е получено, защото "Получено излъчване..." никога не се регистрира
Какво може да причини този проблем?