Я пишу приложение для 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;