从库项目扩展应用程序

Extending Application from a library project

我知道如何从我的主项目扩展应用程序 class,但目前我也在从一个库项目扩展(以解耦代码),所以我以这种方式执行:

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 体系结构或其他方面的某些内容。

如果您确定在您的 LibraryApp class.

中重写的所有方法中都调用了 super.xx(),那将工作正常

不过,使用应用程序 class 基本上会在很大程度上限制您的用户。许多图书馆使用他们自己的应用程序 class(像你一样),并且由于只能有 1 个应用程序 class,并且你只能在 Java 中扩展 1 个 class,这限制了用户访问 1 个使用应用程序 class.

的图书馆

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