我有一个第 3 方库,它通过侦听器接口公开其功能。该库的要求是它在自定义 Android 应用程序类的 onCreate 中被初始化。
public class CustomApplicationWithListener extends Application implements ThirdPartyListener {
public void onCreate() {
if(feature.isTurnedOn()){
// the library requires an application instance of type ThirdPartyListener
init(this);
}
}
}
我试图将此功能隐藏在功能标志后面,并且想知道是否有一种方法可以将侦听器从应用程序类中抽象出来,并且仅在需要该功能时才定义它。只有这样我们才声明该接口。我知道需要在清单中定义自定义应用程序类。有没有办法在运行时动态决定是否启用该功能,然后使用第三方侦听器初始化基本自定义应用程序对象,如下所示,并让主清单知道我们将使用的版本?
var application: Application?
if(feature.isTurnedOn()){
application = CustomApplicationWithListener()
} else {
application = CustomApplication
}