从库项目扩展应用程序

时间:2017-02-03 13:18:49

标签: java android architecture extends extending-classes

我知道如何从我的主项目扩展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架构中的某些东西。

1 个答案:

答案 0 :(得分:1)

如果您确定在LibraryApp类中覆盖的所有方法中调用super.xx(),那么这将正常工作。

虽然,使用Application类基本上限制了你的用户很多。许多库使用自己的Application类(和你一样),因为只有1个Application类,你只能在Java中扩展1个类,这将用户限制为1个使用Application类的库。

您真的需要扩展Application类吗? 最好创建一个以应用程序上下文作为参数的单例初始化程序类。然后你仍然可以访问上下文,并可以注册你想要的任何内容。然后,用户不仅限于扩展您的Application类。