Bind Service to BroadcastReceiver

android, android-alarms, android-service, broadcastreceiver

Solution

Look at http://developer.android.com/reference/android/content/BroadcastReceiver.html life cycle. BroadcastReceiver is created only for handling a message. It means that it's life is very short, ant it is also stateless. So you cannot bind anything to it.

Anyway you can try to start a service form `onReceive(Context context, Intent intent)` method of BroadcastReceiver, like this:

    public void onReceive(Context context, Intent intent) {
        Intent intent2 = new Intent(context, GCMService.class);
        intent2.putExtras(intent);
        context.startService(intent2);
}

Then a=the service should handle a broadcast message.

Problem

I have some Service class, which registers multiple alarms. In my BroadcastReceiver class, I want the onReceive() method to call some method of the Service class. However, I don't see how I can bind them together. I tried to make the BroadcastReceiver an inner class, but then I got more errors and couldn't fire the alarm at all. Thanks

Original source