Выполнение API Call постоянно, даже когда приложение Android закрыто - PullRequest
0 голосов
/ 27 марта 2019

Я разработал приложение для Android, где мне нужно получить список с помощью вызова API rest и показать его в моем приложении. Список часто обновляется. Я написал следующий код, используя RxAndroid и модернизацию для вызова API:

private void fetchAllData() {
        disposable.add(Observable.interval(0,60,TimeUnit.SECONDS).
                subscribeOn(Schedulers.io()).
                flatMap(i -> apiService.getData(fetchActiveData)).
                observeOn(AndroidSchedulers.mainThread()).
                subscribeWith(new DisposableObserver<DataResponse>() {
                   @Override
                   public void onNext(DataResponse dataResponse) {
                       Log.i(TAG, "The rest api was called again");
                       List<Data> dataList = dataResponse.getData();
                       displayData(dataList,false);
                   }
                    @Override
                    public void onError(Throwable e) {
                        Log.e(TAG, "The exception is thrown :: " + e.getMessage());
                        displayData(null,true);
                        fetchAllData();
                    }
                    @Override
                    public void onComplete() {

                    }
                })
        );
    }

Используя приведенный выше код, я могу звонить через каждые 60 секунд и обновлять свой список. Если есть какой-либо новый элемент, который я не отображаю в приложении, то для этого у меня есть логика, чтобы показать уведомление.

Чтобы улучшить свое приложение, мне нужно сделать вызов API, когда приложение закрыто и не работает в фоновом режиме. Может кто-нибудь предложить мне, как мне добиться этого с RxJava.

...