Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/208.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 领域-异步事务插入顺序_Java_Android_Multithreading_Realm - Fatal编程技术网

Java 领域-异步事务插入顺序

Java 领域-异步事务插入顺序,java,android,multithreading,realm,Java,Android,Multithreading,Realm,我使用for循环来保存域中的数据。插入顺序非常重要。对于主线程,一切都正常,但我想将数据保存在后台线程中。因此,使用多个线程会丢失插入顺序 for (int index = 1; index < upperNumber; index++) { saveDB(index); } private void saveDB(final int index) { try { realm.executeTransactionAs

我使用for循环来保存域中的数据。插入顺序非常重要。对于主线程,一切都正常,但我想将数据保存在后台线程中。因此,使用多个线程会丢失插入顺序

for (int index = 1; index < upperNumber; index++) {
          saveDB(index);
}

private void saveDB(final int index) {
            try {
              realm.executeTransactionAsync(new Realm.Transaction() {
                @Override public void execute(Realm bgRealm) {
                  User user = bgRealm.createObject(User.class, index);
                  user.setName(String.valueOf(index) + " Name");
                  user.setAge(index);
                }
              }, new Realm.Transaction.OnSuccess() {
                @Override public void onSuccess() {
                  Log.d(TAG, "Transaction Success: " + index);
                }
              });
            } catch (Exception e) {
              Log.e(TAG, "Error during Transaction: " + e.getMessage());
            }
}
for(int index=1;index
有一个关于自动增量id和插入顺序的领域文档,但这也不适用于异步事务;

如何保证异步事务的插入顺序


谢谢。

您可以在一个事务中插入,而不是在N个事务中插入,但我希望您知道,删除后,Realm不会保留插入顺序。谢谢,在一个事务中插入更好的主意,但在删除后,我再次遇到问题,对吗?如果是,您对保证插入顺序有什么看法?您应该特别添加一个名为
位置
或类似的字段,然后使用
findAllSorted()
/
findAllSortedAsync()