Как получить контекст в Moxy Presenter Android

Как я могу получить контекст активности от докладчика Moxy? На первый взгляд это очень просто...: 1. Добавить Context getMvpActivity (); в MvpView интерфейс и реализовать его в деятельности. 2. И в разговоре ведущего getViewState().getMvpActivity(),

Но Moxy не позволяет добавлять не пустые методы в MvpView интерфейс. Пожалуйста, помогите мне.

PS Мне нужен контекст в Presenter для инициализации компонента приложения (activity это парам для static геттер).

Благодарю. Извините за некоторые грамматические ошибки.

2 ответа

Правильное решение не использует контекст деятельности в докладчике. Потому что в случае активного отдыха этот контекст будет утекать (потому что ведущий будет еще жив). Вы можете использовать контекст приложения. Вы можете передать его через конструктор докладчика.

Решил эту проблему с добавлением Activity контекст как параметр в onViewCreated(), Как это:

//presenter super class
public void onViewCreated (Activity activity) {
    //init component here
    //this.component = ...
    injectPresenter ();
}

protected PresenterComponent getComponent () {
    return this.component;
}

protected abstract void injectPresenter ();



//presenter child class
@Override
public void onViewCreated (Activity activity) {
    super.onViewCreated(this);
}

@Override
protected void injectPresenter () {
    //you can name "inject" different ways
    //in your presenter component interface
    getComponent().inject(this);
}



//activity class
@Override
protected void onCreate () {
    //P.S.(for beginners) variable presenter is the object of class
    //which extends Presenter super class
    presenter.onViewCreated(this);
}
Другие вопросы по тегам