Я взял много следующих идей, которые я взял из этого OReilly book. Это просто то, что сработало лучше для меня.
Что касается архитектуры, то это помогло мне подумать об интерфейсе Android как шаблоне Page Controller - я нашел его похожим на .Net Web Forms на самом деле. Таким образом, да, он подходит для MVC (по крайней мере, для параметра «Контроллер страницы»). Активность - это ваш контроллер, который обычно хранит ваше представление в XML, и вы можете создать свою модель, как вам нравится.
В Android вы видите множество идей веб-дизайна. Навыки во многом похожи на HTTP, или, как правило, REST. У намерений есть «существительное», которое говорит о том, к чему они относятся (может быть явное объявление класса, то есть: перейти к определенной Деятельности или быть более неявным с использованием Intent Filters), действие очень похоже на HTTP-глагол (Get, Post , и т. д.), Bundle очень похож на список параметров строки запроса или полезной нагрузки ... и т. д.
И похоже на веб-страницу, вы хотите, чтобы Activity могла позаботиться о себе.Я имею в виду, что вы не хотите передавать какой-то большой сериализованный объект от активности к активности, его намного более чистый/устойчивый/надежный, чтобы просто передать идентификатор данной записи в следующую активность и позволить этой активности захватить запись с этим идентификатором из db (ContentProvider, некоторый другой постоянный источник ...). Кроме того, действия также должны быть тесно связаны, и вы должны быть в состоянии перейти к одному из разных путей, а также сделать их более пригодными для повторного использования. Таким образом, позволяя вызывающим агентам просто предоставить recordId намного проще, чем Activity, ожидая, что его потребитель предоставит большой сериализованный объект.
Подводная черта - нет, вам не нужно загрязнять деятельность бизнес-логикой, убирать этот материал на прикладном уровне или шлюз или что-то в этом роде. Что касается настойчивости, интерфейс ContentProvider довольно хорошо разработан - мне это нравится. Он также продолжает тему Android RESTful, доступ к контенту через URL-адреса и глаголы (запрос, удаление, обновление, вставка).
Я просто думаю, что это способ сделать это простым. реальный простой. – keyser
Это не вопрос –
@Alex Я, возможно, не сформулировал это как вопрос, но он действительно один. – Machinarius