Разве все классы не должны содержаться в своих собственных файлах?
Не обязательно, поскольку Android Activity
является классом "особого случая".Если вы этого еще не сделали, я бы рекомендовал вам прочитать Основы применения и, в частности, раздел "Действия" в разделе Компоненты приложения ...
Деятельность представляет собой один экран с пользовательским интерфейсом.Например, приложение электронной почты может иметь одно действие, которое показывает список новых электронных писем, другое действие для создания электронного письма и другое действие для чтения электронных писем. Несмотря на то, что действия работают вместе для формирования единого пользовательского интерфейса в приложении электронной почты, каждое из них не зависит от других.Таким образом, другое приложение может запустить любое из этих действий (если приложение электронной почты позволяет это). Например, приложение камеры может запустить действие в приложении электронной почты, которое составляет новую почту, чтобы пользователь могподелиться картинкой.
Обратите внимание на фрагмент текста, который я выделил жирным шрифтом.Дело в том, что Activity
сам по себе не является полным приложением, и, если это разрешено, любое стороннее приложение может потенциально вызывать Activity
в одном из ваших приложений.Таким образом, принято делать Activity
настолько автономным, насколько это возможно.Одним конкретным примером является использование чего-то вроде AsyncTask , который предоставляет методы для выполнения фонового потока, а также для управления пользовательским интерфейсом - вложение частного класса, который расширяет AsyncTask
, довольно распространено и упрощает код.Классы вложения, которые расширяют BroadcastReceiver , также распространены по той же причине.
Тем не менее, нет ничего плохого в использовании отдельных файлов классов Java для классов-помощников POJO, например, он просто сводитсянасколько сложным является ваше приложение, но это может означать особое внимание к тому, как работают определенные классы Android - класс AsyncTask
является единичным, если он определен в отдельном файле классов, попробуйте, и вы поймете, что я имею в виду.: -)