リスナー インターフェイスを介して機能を公開するサード パーティのライブラリがあります。ライブラリの要件は、カスタム 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
}