Android не имеет хорошей архитектуры и не соответствует шаблону проектирования MVC.
Лучший способ концептуализации Activity в MVC - это представление (с некоторой логикой контроллера), потому что оно разрушается каждый раз, когда происходит изменение конфигурации, например, поворот экрана или изменение локали, теряя все свое состояние.
Контроллером в этом случае будет объект Application, поскольку он является вашим мостом для доступа к представлению (Activity и его компонентам GUI) из кода вне контекста Activity. Вы должны использовать синглтоны, чтобы в каждый момент времени существовал только один объект Application, в противном случае в каждом процессе будет один объект Application.
Объект Application не подходит для хранения Модели, поскольку ее жизненный цикл отделен от жизненного цикла. Он может быть уничтожен и воссоздан в любой точке жизненного цикла Действия (пока приложение находится в фоновом режиме), не вызывая его перезапуск, и тогда все его переменные и ссылки, не назначенные в его методе onCreate (), станут нулевыми.
Следовательно, модель должна храниться в фрагменте без заголовка без графического интерфейса пользователя с setRetainInstance (true), который связан с действием и должен повторно присоединяться к нему каждый раз при повторном создании действия. Вы должны использовать менеджер фрагментов, чтобы убедиться, что вы восстанавливаете сохраненный фрагмент и не создаете его заново. Это также лучшее место для запуска фоновых задач, хотя вы также можете запускать их в объекте Application. Никогда не запускайте задачи в Activity, так как они будут уничтожены при изменениях конфигурации.