【问题标题】:Extending Application from a library project从库项目扩展应用程序
【发布时间】:2017-06-20 21:15:46
【问题描述】:

我知道如何从我的主项目扩展 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 架构中的某些内容或其他什么。

【问题讨论】:

    标签: java android architecture extends extending-classes


    【解决方案1】:

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

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

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

    【讨论】:

    • 是的,我需要扩展应用程序类,因为我的库项目中包含的第三方库正在那里初始化,正如我在他们的官方文档中看到的那样。
    猜你喜欢
    • 1970-01-01
    • 2013-06-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-11-23
    • 1970-01-01
    相关资源
    最近更新 更多