在使用singleton应用程序类时使用Sugar ORM

在使用singleton应用程序类时使用Sugar ORM,orm,Orm,我扩展了Android.Application类,这样我就可以保持状态(将应用程序用作单例) 然而,我现在想使用Sugar ORM库来简化我的DB访问,但是Sugar文档()要求我在AndroidManifest.xml中指定“SugarApp”作为我的应用程序类 这与我扩展Android应用程序的应用程序类冲突 是否有其他方法? 从Sugar文档: 例如,通过更改应用程序标记的android:name属性 <application android:label="@string/app_n

我扩展了Android.Application类,这样我就可以保持状态(将应用程序用作单例)

然而,我现在想使用Sugar ORM库来简化我的DB访问,但是Sugar文档()要求我在AndroidManifest.xml中指定“SugarApp”作为我的应用程序类

这与我扩展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>

.
.
.
.

回答我自己的问题-啧啧;-)


很简单,我只是将我的自定义应用程序类改为扩展SugarApp而不是Android。应用程序,就像SugarApp本身扩展Android应用程序一样

如果您看一看SugarApp类,您会发现它扩展了应用程序类,覆盖了onCreate()&onTerminate()方法,实现了它的脚手架:

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

@Override
public void onTerminate() {
    super.onTerminate();
    SugarContext.terminate();
}
如果要保留基本应用程序类,唯一需要做的就是将这些方法调用添加到自定义类中


通过这种方式,您可以维护您的自定义应用程序类,而不是扩展SugarApp类。

确保AndroidManifests中的android:name=“.MyApplication”而不是android:name=“com.orm.SugarApp”对我有效!然而,突然我的单元测试失败了。可以找到一个解决方案:但是,接受的答案不包括自定义应用程序类,因此请查看我的其他答案。接受的答案是一个不错的选择,肯定会帮助其他读者。谢谢