Nicht sicher, ob dies wirklich die Antwort ist, die Sie wollen, da es "die Grafik statisch speichert", aber es könnte trotzdem helfen.
Für die Bibliothek arbeite ich gerade (für einen Kunden). Wir verwenden eine Klasse wie die folgenden den Objektgraphen statt einer benutzerdefinierte Anwendungsklasse zu halten:
public final class MySdk {
private static ObjectGraph objectGraph;
public MySdk(String clientKey, Application application) {
objectGraph = new ObjectGraph();
objectGraph.buildGraph(clientKey, application);
}
public static Authentication getAuthentication(){
return getObjectGraph().get(Authentication.class);
}
private static ObjectGraph getObjectGraph(){
if (objectGraph == null) {
throw new IllegalStateException("The constructor must be called first");
}
return objectGraph;
}
}
Integratoren wollen die Bibliothek verwenden müssen, diese Klasse konstruieren (in der Regel in der onCreate ihrer eigenen benutzerdefinierte Anwendungsklasse)
public class CustomApp extends Application {
@Override
public void onCreate() {
super.onCreate();
MySdk mySdk = new MySdk(BuildConfig.CLIENT_KEY, this);
}
}
Danach sind die Abhängigkeiten von überall verfügbar wie folgt:
Authentication authentication = MySdk.getAuthentication();
(ObjectGraph ist, was Sie wollen natürlich, Dolch Kompo Nent oder selbst angebaut. Wir wollten Dagger2 nicht wirklich in die Bibliothek stellen, also benutzen wir so etwas im Moment: https://github.com/erdo/asaf-project/blob/master/example01databinding/src/main/java/foo/bar/example/asafdatabinding/ObjectGraph.java)