Я слушаю следующий Receiver для простой перезагрузки системы, в которой я хочу получить доступ к моей базе данных комнат:
public class SampleBootReceiver extends BroadcastReceiver {
@Override
public void onReceive(Context context, Intent intent) {
if (intent.getAction().equals("android.intent.action.BOOT_COMPLETED")) {
Application application = (Application) context.getApplicationContext();
new notifyAsyncTask().execute(application);
}
private static class notifyAsyncTask extends AsyncTask<Application, Void, Void> {
private String CHANNEL_ID = "1";
@Override
protected Void doInBackground(Application... params) {
Repository mRepository = new Repository(params[0]);
mRepository.getAllNotification();
LiveData<List<NotificationObject>> notificationObjects = mRepository.getAllNotificationLive();
Log.d(TAG, "doInBackground: NOTIFICATION ==> " + notificationObjects.getValue());// is null ?
return null;
}
}}
Мой репозиторий выглядит так:
public class Repository {
private DAONotification daoNotification;
private LiveData<List<NotificationObject>> allNotificationLive;
public Repository(Application application) {
Database database = Database.getInstance(application);
daoNotification = database.daoNotification();
allNotificationLive = daoNotification.getAllNotificationLive();
allEvents = daoEvents.getAllEvents();
}
public LiveData<List<NotificationObject>> getAllNotificationLive() {
return allNotificationLive;
}
Когда я наблюдаю LiveData из моей Activity, все работает нормально, и я возвращаю данные. Но я не могу получить доступ к данным из моего приемника.
Я тоже что-то пробовал с Сервисом, но это не сработало.
Кто-нибудь знает решение для этого?