Ответ 1
Отвечая на мой собственный вопрос -tut tut; -)
Это просто, я просто изменил свой класс Custom App для расширения SugarApp вместо Android.Application, поскольку SugarApp сам расширяет приложение Android!
Я расширил класс Android.Application, чтобы сохранить состояние (используя приложение как singleton).
Однако теперь я хочу использовать библиотеку Sugar ORM, чтобы упростить мой доступ к БД, но в документах Sugar (http://satyan.github.io/sugar/getting-started.html) требуется указать "SugarApp", как мой класс приложения в AndroidManifest.xml.
Что происходит с моим классом Application, который расширяет приложение Android.
Есть ли альтернативный подход?
Из документов Sugar:
например. путем изменения атрибута android: name тега приложения.
<application android:label="@string/app_name" android:icon="@drawable/icon"
android:name="com.orm.SugarApp">
.
.
<meta-data android:name="DATABASE" android:value="sugar_example.db" />
<meta-data android:name="VERSION" android:value="2" />
<meta-data android:name="QUERY_LOG" android:value="true" />
<meta-data android:name="DOMAIN_PACKAGE_NAME" android:value="com.example" />
.
.
</application>
Отвечая на мой собственный вопрос -tut tut; -)
Это просто, я просто изменил свой класс Custom App для расширения SugarApp вместо Android.Application, поскольку SugarApp сам расширяет приложение Android!
Если вы посмотрите на класс SugarApp, вы обнаружите, что он расширяет класс Application, переопределяя методы onCreate() и onTerminate(), выполняющие его строительные леса:
@Override
public void onCreate() {
super.onCreate();
SugarContext.init(this);
}
@Override
public void onTerminate() {
super.onTerminate();
SugarContext.terminate();
}
Единственное, что вам нужно сделать, если вы хотите сохранить свой базовый класс приложения, - это добавить эти вызовы методов в свой собственный класс.
Таким образом, вы можете поддерживать свой собственный класс приложений вместо расширения класса SugarApp.