Использование Sugar ORM, когда также используется класс приложений singleton

Я расширил класс 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>

Ответы

Ответ 1

Отвечая на мой собственный вопрос -tut tut; -)

Это просто, я просто изменил свой класс Custom App для расширения SugarApp вместо Android.Application, поскольку SugarApp сам расширяет приложение Android!

Ответ 2

Если вы посмотрите на класс SugarApp, вы обнаружите, что он расширяет класс Application, переопределяя методы onCreate() и onTerminate(), выполняющие его строительные леса:

@Override
public void onCreate() {
    super.onCreate();
    SugarContext.init(this);
}

@Override
public void onTerminate() {
    super.onTerminate();
    SugarContext.terminate();
}

Единственное, что вам нужно сделать, если вы хотите сохранить свой базовый класс приложения, - это добавить эти вызовы методов в свой собственный класс.

Таким образом, вы можете поддерживать свой собственный класс приложений вместо расширения класса SugarApp.