从库项目扩展应用程序
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.
我知道如何从我的主项目扩展应用程序 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.