在使用单例应用程序类时使用Sugar ORM

DEz*_*zra 17 orm

我已经扩展了Android.Application类,以便我可以保持状态(使用应用程序作为单例).

但是,我现在想使用Sugar ORM库来简化我的数据库访问,但Sugar文档(http://satyan.github.io/sugar/getting-started.html)要求我指定'SugarApp'作为我的应用程序AndroidManifest.xml中的类.

哪个与扩展Android应用程序的Application类冲突.

有替代方法吗?

来自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>
Run Code Online (Sandbox Code Playgroud)

DEz*_*zra 57

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

这很简单,我只是改变我的自定义应用程序类来扩展SugarApp而不是Android.Application,因为SugarApp本身扩展了Android应用程序!


Vic*_*ngo 10

如果你看一下SugarApp类,你会发现它扩展了Application类,覆盖了执行其脚手架的onCreate()和onTerminate()方法:

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

@Override
public void onTerminate() {
    super.onTerminate();
    SugarContext.terminate();
}
Run Code Online (Sandbox Code Playgroud)

如果要保留基本应用程序类,则唯一需要做的就是将这些方法调用添加到自定义类中.

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