Android:如何从后台线程中正确读取Realm?

时间:2017-05-19 14:04:41

标签: android multithreading realm

这是方法

package com.example.sudhe.quizgame3;

import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.widget.TextView;

public class ScoreBoard extends AppCompatActivity {
    TextView textView;

    String text = "";

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_score_board);

        textView = (TextView) findViewById(R.id.textView);

        DatabaseHelper db = new DatabaseHelper(this);

        db.addScore(new Score());
    }
}

如果我点击Activity中的菜单项,我会得到一个包含所有存储对象的列表。 但是,服务创建的另一个线程会定期从Realm加载内容。

public static List<User> getRecords(Context context) {
    Realm.init(context);
    Realm realm = Realm.getDefaultInstance();
    final RealmResults<Users> users = realm.where(Users.class).findAll();
    return realm.copyFromRealm(users);
}

在这种情况下,列表为空。我做了菜单项的技巧来检查它,所以每当我看到线程即将加载我从菜单项手动加载,然后我看到带有空列表的线程。如果我单击菜单项,我可以再次看到相同的列表,因此它可以为空。

0 个答案:

没有答案