Могу ли я наблюдать за состоянием работы, если приложение работает в фоновом режиме? - PullRequest
0 голосов
/ 02 апреля 2020

У меня есть Worker и WorkManager, который запрашивает PeriodicJobRequest. В MainActivity я инициализирую работника и все мышью одним нажатием кнопки.

Я также делаю это:

WorkManager.getInstance(context).getWorkInfoByIdLiveData(changeWallpaperRequest.getId()).observe( owner , new Observer<WorkInfo>() {
        @Override
        public void onChanged(WorkInfo workInfo) {

            WorkInfo.State state = workInfo.getState();
            Log.d("StateOfWork", "State is : " + state);

            if(state == WorkInfo.State.CANCELLED || state == WorkInfo.State.FAILED || state == WorkInfo.State.BLOCKED) {

                if(!closedByUser)
                {


                    WorkInfo.State temp = WorkManager.getInstance(context).getWorkInfoByIdLiveData(changeWallpaperRequest.getId()).getValue().getState();

                    if( temp != WorkInfo.State.SUCCEEDED && temp!= WorkInfo.State.ENQUEUED)
                      WorkManager.getInstance(context).enqueue(changeWallpaperRequest);

                    showNotification(context,"Work closed by system " +  state.toString() );


                }

                if(closedByUser) {
                    closedByUser = false;

                    showNotification(context,"Work closed by user " + state.toString());
                }
            }else{
                //WorkInfo.State state = workInfo.getState();
                Log.d("StateOfWork2", "State is: " + state);
                showNotification(context,"Work status changed: " + state.toString());

            }


        }
    });

Я хочу наблюдать за работником, пока приложение находится в фоновом режиме (потому что я думаю, Android продолжает отменять мой работник - и я хочу перезапустить рабочий, если это произойдет), но поскольку LifeCycleOwner в методе наблюдения установлен на MainActivity, как только я выхожу из приложения, метод останавливается.

Можно ли как-нибудь посмотреть мою работу, даже если приложение закрыто?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...