I have an app which is basically a service that runs all the time and alarms the user when something happens.
When the service creates the alarm, it needs to give it his context
so that the alarm can do callbacks to the service when something happens.
For example:
public MyService extends Service{
private SomeAlarm alarm;
@Override
public void onCreate() {
super.onCreate();
alarm = new SomeAlarm(MyService.this);
}
}
How can I inject the SomeAlarm
class into the service, and give the SomeAlarm
the service context as a variable?
Had a similar issue, Turned out that I was calling Builder() (Uppercase B) Correct one should be builder (lowercase b)
I wrote the code from the top of my head, so there could be a typo or two.
You do it just the same as when injecting stuff into activities.
Your module and component would look something like this (maybe add some scope)
Then in
onCreate
just create your component and inject your alarm.This is assuming that your alarm can be constructor injected by having an
@Inject
annotated constructor like this:Else you would just also add the alarm creation to your module.