Нет необходимости регистрировать базовый класс активности в манифесте?

У меня есть собственный базовый абстрактный класс, который расширяет класс Activity .

 public abstract class BaseActivity extends Activity { @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(getLayoutResourceId()); } protected abstract int getLayoutResourceId(); } public class Activity1 extends BaseActivity { @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); // do extra stuff } @Override protected int getLayoutResourceId() { return R.layout.layout_for_activity1; } } 

Мой базовый класс BaseActivity не зарегистрирован в файле Manifest и я не получаю никаких ошибок.

Является ли это бомбой замедленного действия (не регистрируя базовый класс в манифесте), или так оно и должно быть? Может кто-нибудь объяснить, почему?

Согласно документам, <activity> в манифесте:

Объявляет действие (подкласс Activity), которое реализует часть визуального пользовательского интерфейса приложения. Все действия должны быть представлены элементами в файле манифеста. Любые, которые не объявлены там, не будут видны системе и никогда не будут запущены .

Подумайте об этом так: если есть активность (любой класс, который расширяет действие или класс, который его расширяет), который вы будете перемещать в какой-то момент вашего приложения, его необходимо объявить в манифесте. Независимо от того, как вы достигнете этой активности. Это исключает классы, которые расширяют только класс Activity но вы не можете связаться напрямую.

Источник

Вам не нужно регистрировать класс BaseActivity в манифесте, потому что его не тот, который вы вызываете, с намерением запустить.

например:

 Intent i = new Intent(context, Activity1.class); startActivity(i); 

В вышеприведенном коде вам необходимо иметь Activity1 зарегистрированную в манифесте, потому что вы упоминаете ее в намерении, а не в классе BaseActivity .

Intereting Posts
Android – startActivityForResult сразу же запускает onActivityResult Как сделать Android-приложение без использования Android Studio? Пробелы, не работающие при использовании API автозаполнения Google Адресов Аутентификация с помощью OAuth2 для приложения * и * веб-сайта Facebook SDK 3.0 – получить идентификатор пользователя Facebook и токен доступа Существует ли API для использования функции дистанционного управления телевизором Samsung TV? Размер значка панели действий Когда следует использовать unbindService (), и как я должен использовать его правильно, чтобы отвязать от удаленной службы, использующей интерфейс AIDL? Как открыть PDF-файл в приложении для Android и разрешить пользователям использовать встроенные гиперссылки? Различные tabMode для TabLayout Охват кода в Android Studio с помощью Sonar & Gradle Как долго обновляется Mobile Android Market после публикации обновления? Мастер детализирует стилизацию в андроиде Масштабирование кнопки stage2d с помощью libgdx Карта Google не отображает ничего на карте