My app should do an stuff every morning. So I am using broadcast receiver. When broadcast receiver is triggered I need to connect to my room-db. Get some data and do stuff with them. Normally I am using AndroidViewModel and LiveData for that. But I can not initiate a AndroidViewModel inside BroadcastReceiver. Instead I am initiating my repository and sending a read reaquest and assigning them to LiveData.
Problem is I need to observe the live data. But Broadcast receiver is not an lifecycle-owner.
private void getData(){
HomeRepository repository = HomeRepository.getInstance(context);
alarms = repository.getAllAlarms();
alarms.observe(this, new Observer<List<Alarm>>() {
@Override
public void onChanged(List<Alarm> alarmList) {
//Do Stuff
}
});
}
So it gives me a compile error saying Broadcast Reciever is not a lifecyle owner
So I tried this:
public class MyBroadcastReceiver extends BroadcastReceiver implements LifecycleOwner
It compiled but gave an error on the run time
Caused by: java.lang.NullPointerException: Attempt to invoke virtual method 'androidx.lifecycle.Lifecycle$State androidx.lifecycle.Lifecycle.getCurrentState()' on a null object reference
Can someone please show me the right direction to go here?