在使用预定义领域数据库的不同活动中使用领域实例

and*_*med 1 android realm

我成功地将预定义的领域数据库添加到我的应用程序并获取数据

copyBundledRealmFile(this.getResources().openRawResource(R.raw.test), 
"test");

    RealmConfiguration config1 = new RealmConfiguration.Builder(this)
            .name("test")
            .schemaVersion(1)
            .migration(new Migration())
            .build();
    realm = Realm.getInstance(config1);
realm.close();

private String copyBundledRealmFile(InputStream inputStream, String outFileName) {
    try {
        File file = new File(this.getFilesDir(), outFileName);
        FileOutputStream outputStream = new FileOutputStream(file);
        byte[] buf = new byte[1024];
        int bytesRead;
        while ((bytesRead = inputStream.read(buf)) > 0) {
            outputStream.write(buf, 0, bytesRead);
        }
        outputStream.close();
        return file.getAbsolutePath();
    } catch (IOException e) {
        e.printStackTrace();
    }
    return null;
}
Run Code Online (Sandbox Code Playgroud)

当我尝试使用时如何获取领域实例的问题

       realm = Realm.getDefaultInstance();
Run Code Online (Sandbox Code Playgroud)

给我空数据如何在应用程序中获取实例

Tim*_*Tim 5

为了能够获得默认值,您必须设置一个默认值:

RealmConfiguration config1 = new RealmConfiguration.Builder(this)
        .name("test")
        .schemaVersion(1)
        .migration(new Migration())
        .build();

Realm.setDefaultConfiguration(config1); // <-- here
Run Code Online (Sandbox Code Playgroud)

现在你可以得到它

Realm.getDefaultInstance();
Run Code Online (Sandbox Code Playgroud)