我扩展了Android.Application类,以便我可以保持状态(使用应用程序作为单例)。
但是,我现在想要使用Sugar ORM库来简化我的数据库访问,但Sugar文档(http://satyan.github.io/sugar/getting-started.html)要求我在AndroidManifest.xml中指定'SugarApp'作为我的应用程序类。
与我的扩展Android应用程序的Application类冲突。
有替代方法吗?
来自Sugar docs:
E.g。通过更改应用程序标记的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>
答案 0 :(得分:57)
回答我自己的问题 - 但是啧啧; - )
这很简单,我只是改变了我的自定义应用程序类来扩展SugarApp而不是Android.Application,因为SugarApp本身扩展了Android应用程序!
答案 1 :(得分:10)
如果你看一下SugarApp类,你会发现它扩展了Application类,覆盖了onCreate()&amp; onTerminate()方法做脚手架:
@Override
public void onCreate() {
super.onCreate();
SugarContext.init(this);
}
@Override
public void onTerminate() {
super.onTerminate();
SugarContext.terminate();
}
如果要保留基本应用程序类,则唯一需要做的就是将这些方法调用添加到自定义类中。
通过这种方式,您可以维护自定义应用程序类,而不是扩展SugarApp类。