Комната доступа от BroadcastReceiver в Android - PullRequest
0 голосов
/ 06 апреля 2020

Я слушаю следующий 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, все работает нормально, и я возвращаю данные. Но я не могу получить доступ к данным из моего приемника.

Я тоже что-то пробовал с Сервисом, но это не сработало.

Кто-нибудь знает решение для этого?

...