2017-02-03 4 views
0

я знаю, как расширить класс приложений от моего основного проекта, но в данный момент я простирающийся также из библиотеки проекта (расцепить код), поэтому я выполнить таким образом:Расширение приложения из библиотеки проекта

1 - public class MyMainApplication extends LibraryApp {...

2- public class LibraryApp extends Application {...

И мой манифест:

<application 
    android:name="com.something.MyMainApplication" 
    android:allowBackup="true" 
    android:icon="@mipmap/ic_launcher" 
    android:label="@string/app_name" 
    android:theme="@style/MyMainAppTheme"> 

на самом деле все работает хорошо, но я хочу знать, что я f это кодирование может сломать что-то в архитектуре Android или что-то еще.

ответ

1

Это будет работать нормально, если вы уверены, что вызываете super.xx() во всех методах, которые вы переопределяете в классе LibraryApp.

Хотя, использование класса Application в основном ограничивает пользователей довольно много. Многие библиотеки используют свой собственный класс Application (например, вы), и поскольку может быть только один класс Application, и вы можете расширить только один класс в Java, что ограничивает пользователя 1 библиотекой, использующей класс Application.

Вам действительно нужно расширить класс приложения?
Было бы лучше создать класс инициализатора singleton, который принимает контекст приложения как параметр. Затем у вас есть доступ к контексту и вы можете регистрировать все, что захотите. И тогда пользователь не ограничивается расширением вашего класса приложений.

+0

Да, я требую расширения класса приложений для сторонних библиотек, включенных в мой проект библиотеки, инициализируются там, как я видел в их официальных документах. – Billyjoker

Смежные вопросы