0

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

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 架构中的某些东西或其他什么。

4

1 回答 1

1

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

但是,使用 Application 类基本上会限制您的用户。许多库使用自己的 Application 类(如您),并且由于只能有 1 个 Application 类,并且您只能在 Java 中扩展 1 个类,这将用户限制为 1 个使用 Application 类的库。

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

于 2017-02-03T13:25:35.273 回答