Articles of 领域

如何在android的Realm中实现以下function

在我的应用程序中,我通常有一个加载器,它从sqlite加载数据,然后将其传递到它所附加的活动或片段,从它在absListView的适配器中设置的位置传递给用户 由于领域声明,它的对象不应该在线程之间共享 ,如何在不从UI线程进行任何数据库调用的情况下实现呢? (这会让应用程序感觉呆滞,因为我打了一个很好的数据库) 同样在3个例子 – intro , gridView和migration中 ,很多次db操作都是在UI线程中完成的。 在UI线程中的数据库操作是不是严重皱眉在Android? 从文档中引用 – 可能长时间运行的操作(如networking或数据库操作)或计算量大的计算(如调整位图大小)应在工作线程(或在数据库操作的情况下,通过asynchronous请求)完成。

领域与列表查询

我正在使用领域在Android上存储我的数据。 真棒框架! 现在我唯一的问题是: 我有我的数据库中的国家的ID的数组列表string。 现在我找回包含与国家关系的饮料。 有没有办法,我可以做这样的查询: String [] ids; realm.where(Drinks.class).equalsTo("country.id", ids); 类似的东西? 或者我真的需要做一个查询,让我所有的饮料,然后手动过滤列表? 编辑: 我的课程: public class Drinks extends RealmObject { @PrimaryKey private String id; private String name; private Country country; } public class Country extends RealmObject { @PrimaryKey private String id; private String name; }

我是否必须根据每个线程或每个用途/类别来closures领域?

如果我有这样的MainActivity: public class MainActivity extends AppCompatActivity @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); // Set up database RealmConfiguration realmConfiguration = new RealmConfiguration.Builder(this).build(); Realm.deleteRealm(realmConfiguration); // Clean slate Realm.setDefaultConfiguration(realmConfiguration); // Make this Realm the default realm = Realm.getDefaultInstance(); } @Override public void onDestroy() { realm.close(); super.onDestroy(); } } 我在另一个类(相同的线程)中使用realm.getDefaultInstance() : public class ViewBookActivity extends Activity { […]

将独立对象添加到RealmList

是否有可能添加独立的对象Realm对象Realm对象已经坚持在领域? 那么,我知道这是行不通的,因为我得到NPE( object.row.getIndex():RealmList:94 ) 我想要做的是: mRealm.beginTransaction; contact.getEmails().add(new Email()); mRealm.commitTransaction; 因为在那个特定的时刻,我没有访问一个领域(嗯,我可以使它工作,但我将不得不重写一些结构),例如: //In Activity Contact contact = Realm.where(Contact.class).equalsTo("name","pete").findAll().first(); mRealm.beginTransaction; UpdateHelper.update(contact); mRealm.commitTransaction; //Helper class some else package public static void update(Contact contact) { //do update stuff contact.getEmails().add(new Email()); } `

通过使用Realm库获取光标

我正在使用游标适配器为我的列表视图。 我打算使用内容parsing器来获取游标。 现在我改变了主意,给了它一个学习领域的机会。 我怎样才能通过使用领域获得“光标”对象? 顺便说一句,我也将不胜感激给一些片段来sorting游标。 谢谢。 final class Contact extends RealmObject { private CharSequence mName; public CharSequence getName() { return mName; } public void setName(CharSequence name) { this.mName = name; } } final class ContactListAdapter extends CursorRecyclerViewAdapter<ContactListAdapter.ContactHolder> implements View.OnClickListener { private OnContactClickListener mListener; public ContactListAdapter(Context context, Cursor cursor) { super(context, cursor); } @Override public ContactHolder […]

限制领域结果

如何限制Realm返回的对象数量? .findAll返回匹配查询的所有行,.findFirst只返回第一个。 但是,像第一个1000呢? .findAll可能会返回太多的行,消耗太多的内存。

与领域构build错误

用Realm编译代码时出错 :app:compileDebugJavaWithJavac注意:处理类DataBaseQuestion错误:如果声明了自定义构造函数,则必须声明不带参数的默认公共构造函数。 注意:创buildDefaultRealmModule警告:在上一轮中创build的types为“io.realm.DefaultRealmModule”的文件将不受注解处理。 警告:在上一轮中创build的types为“io.realm.DefaultRealmModuleMediator”的文件将不会进行注释处理。 2个警告错误:执行任务':app:compileDebugJavaWithJavac'失败。 编译失败 详细信息请参阅编译器错误输出。 注:默认构造函数已经存在于我的模型或Java Bean类中。 任何人都可以请帮助我如何解决这个问题? DataBaseQuestion.java public class DataBaseQuestion extends RealmObject{ int id; String Question =null; String QuestionNo =null; List<String> optionList=null; String typeOfQuestion=null; String Answer = null; String Explanation = null; DataBaseQuestion() { } public DataBaseQuestion(int id, String question, String questionNo, List<String> optionList, String typeOfQuestion, String answer, String explanation) { […]

Realm.io Android最好的方法来获得表中的最后20个项目

在一个表中说100个项目,这是获得最后20个对象的最佳方法。 我可以想到的一种方法是加载所有的对象,反转数组,创build一个新的数组,并从结果循环20次填充新的数组并返回它。 如下所示: public ArrayList<DataObject> getLastItems (int qty){ RealmResults<DataObject>results = realm.where(DataObject.class).findAll(); Collections.reverse(results); ArrayList<DataObject>arrayList = new ArrayList<>(); for (int i = 0; i == qty; i++){ arrayList.add(results.get(i)); } return arrayList; } 有没有更好的更快的方法来做到这一点在android使用realm.io? 更新 这是迄今为止如何处理.. public ArrayList<DataObject> getLastItems (int qty){ RealmResults<DataObject>results = realm.where(DataObject.class).findAll(); ArrayList<DataObject> arrayList = new ArrayList<>(); for (int i = results.size(); i > Math.max(results.size() – […]

使用Realm支持枚举?

我正在一个Android应用程序和领域,我需要为我的一个对象创build一个枚举属性; 但是我在这篇文章中发现Realm不支持enum呢。 我的对象是这样的: public class ShuttleOption extends RealmObject { private int Id; private String Label; private ShuttleTypes OriginShuttleType; } 和我的枚举类(ShuttleTypes)对应于: HOME = 1; 和 WORK = 2; 有人可以build议我怎么做吗?

在Android下testing领域

我有一个Android应用程序,我使用Realm来保存数据。 我现在想用这个Realm为这个应用程序编写一个unit testing。 但是,我不希望unit testing干扰我现有的Realm数据。 所以我想为我的testing实例生成不同的Realm文件。 我不在乎他们是否有不同的名字,或者存储在不同的目录中。 我试图使用RenamingDelegatingContext ,但没有成功。 根据https://groups.google.com/forum/#!msg/realm-java/WyHJHLOqK2c/WJFYvglIGk0J,getInstance getInstance()只使用Context来调用getFilesDir() ,它似乎不会覆盖getFilesDir()方法,所以我最终使用我的实时数据进行testing。 接下来我尝试使用IsolatedContext ,但IsolatedContext.getFilesDir()返回null ,所以这也不成功。 最后,我试着写一个扩展了getFilesDir()的类,覆盖getFilesDir() ,返回Realm使用的不同目录。 我使用AndroidStudio的DeviceMonitor创build了目录,但是当我尝试使用此上下文时,Realm失败,出现io.realm.exceptions.RealmIOException: Failed to open . Permission denied. open() failed: Permission denied io.realm.exceptions.RealmIOException: Failed to open . Permission denied. open() failed: Permission denied io.realm.exceptions.RealmIOException: Failed to open . Permission denied. open() failed: Permission denied 。 有谁知道是否有可能在不影响实时数据的情况下testingRealm?