2012-06-06 31 views
7

使用ORMLite v 4.40,我试图让我的应用程序运行,但它似乎忽略的onCreate功能ORMLite Android上没有要求的onCreate

我DatabaseHelper看起来是这样的(片段式的)

public class ORMLiteHelper extends OrmLiteSqliteOpenHelper { 

    private Context databaseContext; 
    private static String DATABASE_NAME = "InVinoVeritas"; 
    private static int DATABASE_VERSION = 1; 

    public ORMLiteHelper(Context context) { 
     super (context, DATABASE_NAME, null, DATABASE_VERSION); 
     Log.v("ORMLiteHelper", "Cosntructor"); 
    ... 

    @Override 
    public void onCreate(SQLiteDatabase database, ConnectionSource connectionSource) { 
     Log.v("DatabaseHelper", "onCreate"); 
    ... 
    @Override 
    public void onUpgrade(SQLiteDatabase database, ConnectionSource connectionSource, int oldVersion, int newVersion) { 
      Log.v("DatabaseHelper", "onUpgrade"); 
    ... 

我的MainActivity调用DatabaseHelper描述:

public class MainActivity extends OrmLiteBaseActivity<ORMLiteHelper> { 

我曾尝试重新安装应用程序,升级数据库版本,没有任何工程。 我确实看到构造函数调用(包括错字:-),但是onCreate和onUpgrade不会被调用。

任何帮助表示赞赏

巴里

+0

'onCreate'被调用的唯一时间是当数据库不存在时。在增加数据库版本号时调用onUpgrade。它调用这个例程的任何改变,但你正在过滤调试输出? – Gray

+0

P.S.我知道在以下位置的问题:http://stackoverflow.com/questions/10260137/ormlite-database-helper-oncreate-not-called – barrel

+1

我不这么认为。我明确地删除应用程序使用:./adb uninstall be.nauta.vino我也尝试升级现有(读:安装)应用程序的数据库版本,但没有运气 – barrel

回答

23

ORMLiteHelper创建实例,并调用getWritableDatabase()。当数据库没有创建时,onCreate将被调用。

+0

优秀!!!这就是诀窍(确实是......)。感谢您的快速回复。还有:保持良好的工作! – barrel