0

I am using Observer Pattern to update my Service for new receivers to register. Service class is the Observer and is notified when it has to register for new receiver.

public class ServiceAlpha extends Service implements Observer {

private Map<BroadcastReceiver, IntentFilter> localReceivers = new HashMap<>();

@Override
public int onStartCommand(Intent intent, int flags, int startId) {
    Log.i(TAG, "onStartCommand:  service started");
    return START_REDELIVER_INTENT;
}


@Override
public void onReceiverAdded() {

    MapDifference<BroadcastReceiver, IntentFilter> diff = Maps.difference(ReceiversList.receivers, localReceivers);

    for (Map.Entry<BroadcastReceiver, IntentFilter> entry : diff.entriesOnlyOnLeft().entrySet()) {
        BroadcastReceiver key = entry.getKey();
        IntentFilter value = entry.getValue();

        Log.i(TAG, "onReceiverAdded: key: " + key + " value: " + value + " context: " + this);
        getApplicationContext().registerReceiver(key, value);  //registering the receiver
    }
    Log.i(TAG, "onReceiverAdded: added something on the list");
}

@Nullable
@Override
public IBinder onBind(Intent intent) {
    return null;
}
}

When a new item is added to the HashMap, onReceiverAdded is called and receiver is registered. But I keep getting java.lang.NullPointerException: Attempt to invoke virtual method 'android.content.Context android.content.Context.getApplicationContext()' on a null object reference. I have tried replacing getApplicationContext() with this but still get similar error.

However, there was no problem when I registered for receiver in onStartCommand method.

The debug log before the receiver gives this output:

onReceiverAdded: key: io.rudevdr.simpleservice.receivers.ChargingReceiver@168bb5f value: android.content.IntentFilter@d28e9ac context: io.rudevdr.simpleservice.services.ServiceAlpha@8a61675.

I don't get why I get NullPointerException when all three values are not null.

Any help/comment is appreciated. Thank you.

rudevdr
  • 389
  • 1
  • 5
  • 15
  • code? how you are interacting with service class ? – Pavneet_Singh Apr 10 '18 at 17:38
  • Possible duplicate of [What is a NullPointerException, and how do I fix it?](https://stackoverflow.com/questions/218384/what-is-a-nullpointerexception-and-how-do-i-fix-it) – Chisko Apr 10 '18 at 17:42

0 Answers0