Как создать модуль для Android "Менеджеры работы" в архитектуре MVP? - PullRequest
1 голос
/ 24 июня 2019

Я пишу приложение для Android, которое выполняет серию резервных копий.Я использую workmanager, чтобы сделать это на фоне .Теперь, как мне реализовать WorkManager в MVP?Ниже представлен модуль для рабочих

@Module
public class WorkerModule {

    private final Worker mworker;

    public WorkerModule(Worker worker) {
        mworker = worker;
    }
    @Provides
    CompositeDisposable provideCompositeDisposable() {
        return new CompositeDisposable();
    }
    @Provides
    SchedulerProvider provideSchedulerProvider() {
        return new AppSchedulerProvider();
    }
    ////////////Presenter
}

Ниже приведен мой компонент для рабочих

@PerWorker
@Component(dependencies = ApplicationComponent.class, modules = `WorkerModule.class)
public interface WorkerComponent {
    void inject(sendLocationWorker worker);
}`

Ниже мой Presenter

public class LocationRequestPresenter<V extends MainMvpView> extends BasePresenter<V> 
    implements LocationRequestMvpPresenter<V> {

    private static final String TAG = "LocationRequestPresenter";

    private boolean ischecked = false;
     @Inject
    public LocationRequestPresenter(DataManager dataManager,
                                    SchedulerProvider schedulerProvider,
                                    CompositeDisposable compositeDisposable) {
        super(dataManager, schedulerProvider, compositeDisposable);
    }
    @Override
    public void onGetLocations() {
        getCompositeDisposable().add(getDataManager().getAllLocations()
                .subscribeOn(getSchedulerProvider().io())emphasized text
                .observeOn(getSchedulerProvider().ui())
                .subscribe(new Consumer<List<Location>>() {
                               @Override
                               public void accept(List<Location> locationList) throws Exception {
                                   onSendLocations(locationList);
                               }
                           }
                        , new Consumer<Throwable>() {
                            @Override
                            public void accept(Throwable throwable) throws Exception {

                            }
                        }));
    }
     @Override
    public void onSendLocations(List<Location> locationList) {
        getCompositeDisposable().add(getDataManager().doSendLocationHistory(new AddLocationRequest(locationList))
                .subscribeOn(getSchedulerProvider().io())
                .observeOn(getSchedulerProvider().ui())
                .subscribe(new Consumer<CommonResponse>() {
                    @Override
                    public void accept(CommonResponse s) throws Exception {
                        ischecked = false;
                    }
                }, new Consumer<Throwable>() {
                    @Override
                    public void accept(Throwable throwable) throws Exception {

                    }
                }));
    }
}

Теперь, почему, когда яиспользуйте Presenter, работник возвращает null для ведущего для инъекций Presenter Я использую это на своем работнике:

RequestPresenter<MainMvpView>  mPresenter;
...