领域数据库未写入数据

时间:2019-01-19 19:01:42

标签: java android realm

我试图使用领域写入db,但是它确实写入值。我还添加了

  

应用插件:“ android-apt”   应用插件:“ realm-android”

我在异步任务中使用它。下面 如何正确写入领域数据库

protected Integer doInBackground(Integer[] p1)
{
    Realm.init(acti);
    RealmConfiguration otherConfig = new RealmConfiguration.Builder().directory(new File(Environment.getExternalStorageDirectory().getAbsolutePath() + "/xMapper/"+fileN)).build();
    Realm.setDefaultConfiguration(otherConfig);
    realm = Realm.getDefaultInstance();

    for (File file:foxReaderLost)
    {   
        final byte[] x=utilz.compress(FileUtils.readFileToString(file));
        final String y=file.getName();

        realm.executeTransaction(new Realm.Transaction(){
                @Override
                public void execute(Realm p1)
                {
                    IconModel icm=p1.createObject(IconModel.class);
                    icm.setName(y);
                    icm.setSource(x);
                }
            });
     }
}

我的RealmObject

public class IconModel extends RealmObject {
    private byte[] msource;
    private String mname;

    public void setSource(byte[] lastName)
    {
        this.msource = lastName;
    }

    public void setName(String firstName)
    {
        this.mname = firstName;
    }
}

1 个答案:

答案 0 :(得分:2)

初始化您的项目,如果您还没有扩展Application的类,则只需创建一个即可。

class App extends Application {

    @Override
    public void onCreate() {
        Realm.init(acti);
        RealmConfiguration otherConfig = new RealmConfiguration.Builder().directory(new File(Environment.getExternalStorageDirectory().getAbsolutePath() + "/xMapper/"+fileN)).build();
        Realm.setDefaultConfiguration(otherConfig);
    }
}

然后,您只需调用Realm.getDefaultInstance()即可获得领域对象以查询/插入/更新/删除数据库。