我知道如何从我的主项目扩展Application类,但是目前我也从库项目扩展到uncouple代码,所以我以这种方式执行:
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">
事实上一切都运作良好,但我想知道这种编码是否会破坏Android架构中的某些东西。
答案 0 :(得分:1)
如果您确定在LibraryApp类中覆盖的所有方法中调用super.xx(),那么这将正常工作。
虽然,使用Application类基本上限制了你的用户很多。许多库使用自己的Application类(和你一样),因为只有1个Application类,你只能在Java中扩展1个类,这将用户限制为1个使用Application类的库。
您真的需要扩展Application类吗? 最好创建一个以应用程序上下文作为参数的单例初始化程序类。然后你仍然可以访问上下文,并可以注册你想要的任何内容。然后,用户不仅限于扩展您的Application类。