首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >Android创建sqlite数据库

Android创建sqlite数据库
EN

Stack Overflow用户
提问于 2018-06-15 06:05:34
回答 1查看 854关注 0票数 1

我在用一个简单的文件创建sqlite db时遇到了问题。我正在记录一些消息,如果创建或升级了数据库,我希望在日志中显示这些消息,但它们没有显示。

代码如下:

代码语言:javascript
复制
package com.example.karim.myandoidapp;

import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.util.Log;
import android.content.Context;
import android.database.sqlite.SQLiteDatabase;
import android.database.sqlite.SQLiteOpenHelper;

public class HomeActivity extends AppCompatActivity {

    String msg = "My android app log : ";

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        Log.e(msg, "onCreate() event loading activity_home view");
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_home);
        Log.e(msg, "onCreate() event loading activity_home view");
        Context context = myandoidapp.getAppContext();
        MySQLiteHelper MySQLiteHelper = new MySQLiteHelper(context);
    }

    private class MySQLiteHelper extends SQLiteOpenHelper {

        // Database Version
        private static final int DATABASE_VERSION = 1;
        // Database Name
        private static final String DATABASE_NAME = "mydbnamesss";

        public MySQLiteHelper(Context context) {
            super(context, DATABASE_NAME, null, DATABASE_VERSION);
        }

        @Override
        public void onCreate(SQLiteDatabase db) {
            Log.e("DEBUG: ", "db created at " + db.getPath());
        }

        @Override
        public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
            Log.e("DEBUG: ", "db upgraded ");
        }

    }

}

以下是我的日志中的输出:

代码语言:javascript
复制
06-14 15:02:29.122 6644-6644/com.example.karim.myandoidapp E/My android app log :: Opening HomeActivity

    --------- beginning of system
06-14 15:02:29.141 6644-6644/com.example.karim.myandoidapp E/My android app log :: onCreate() event loading activity_home view
06-14 15:02:29.203 6644-6673/com.example.karim.myandoidapp D/EGL_emulation: eglMakeCurrent: 0xa22050c0: ver 3 0 (tinfo 0xa2203360)
06-14 15:02:29.209 6644-6673/com.example.karim.myandoidapp D/EGL_emulation: eglMakeCurrent: 0xa22050c0: ver 3 0 (tinfo 0xa2203360)
06-14 15:02:29.216 6644-6673/com.example.karim.myandoidapp D/EGL_emulation: eglMakeCurrent: 0xa22050c0: ver 3 0 (tinfo 0xa2203360)
06-14 15:02:29.218 6644-6673/com.example.karim.myandoidapp D/OpenGLRenderer: endAllActiveAnimators on 0x8eeae180 (RippleDrawable) with handle 0xa2203ac0

我在这里添加了我是如何获取上下文的,以防它相关:

打包com.example.karim.myandoidapp;

导入android.content.Context;导入android.app.Application;

代码语言:javascript
复制
public class myandoidapp extends Application {

    private static Context context;

    public void onCreate() {
        super.onCreate();
        myandoidapp.context = getApplicationContext();
    }

    public static Context getAppContext() {
        return myandoidapp.context;
    }

}

谢谢

EN

回答 1

Stack Overflow用户

发布于 2018-06-15 06:13:03

您的代码定义了SQLiteOpenHelper的一个子类,然后实例化它,但这还不足以创建/打开SQLite数据库。如果我是你,我会读一读谷歌开发的名为Room的新库。这是一个非常棒的库,可以帮助您轻松创建和维护SQLite数据库,而不是手动创建自己的SQLiteOpenHelper实例、维护迁移等。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/50866579

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档