@mr_serg77

Какие есть решения, что бы не пересоздавать Model class?

Собственно структура кода:

Activity:
public class MainActivity extends AppCompatActivity {

    private iMainActivityModel iModel;

    @Override
    protected void onCreate(@Nullable Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        iModel = new MainActivityModel(this);
    }
}


iMainActivityModel:
interface iMainActivityModel {

    boolean isFirstStart();

    void showSetupFragment();

    void showMainFragment();

}


MainActivityModel:

class MainActivityModel implements iMainActivityModel {

    private Activity activ;

    MainActivityModel(Activity activity){
        this.activ = activity;
    }

    @Override
    public boolean isFirstStart() {
        return false;
    }

    @Override
    public void showSetupFragment() {
     
    }

    @Override
    public void showMainFragment() {
       
    }
}


При перевороте телефона собственно активити пересоздается, пересоздается и модель, ибо инициализирую в onCreate. Если скажем там лежит какой-то метод, который ко коллбэку что-то отдать должен будет - в этот момент юзер переворачивает телефон - данные летят в нулл поинтер, ошибка + пересоздание = трата реурсов как по мне.

Можно конечно там проверку делать на нулл, или еще какой хак. Но думаю, это не маст хэв.

Присматриваюсь к биндингу \ каким-то лоадерам, но пока в полной мере не осознаю принцип пользования.

Подтолкнете, что почитать \ изучить? Да и в целом по структуре если покажите годные примеры MVP \ MVVM - буду признателен!

В гугле не забанен, просто не имею толкого представления, что гуглить.
  • Вопрос задан
  • 260 просмотров
Решения вопроса 1
1110001111
@1110001111
Что ты хочешь сделать и откуда ты взял этот подход?
Ты хочешь вынести всю логику в Модель и чтобы она управляла Активностью? Тогда это получается Презентер из MVP. Читай статьи на том же хабре про MVP.
Чтобы вручную не заниматься связыванием Активности и Презентера можешь использовать библиотеку Moxy. Она возьмет на себя управление жизненным циклом Презентера. На хабре есть отличные статьи по Moxy.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы