Java 当应用程序未打开时,当我尝试在域中插入数据时,我得到错误;无法在线程上自动更新领域>;没有活套;?
我正试图通过FCM推送通知将数据插入我的领域数据库,现在当Java 当应用程序未打开时,当我尝试在域中插入数据时,我得到错误;无法在线程上自动更新领域>;没有活套;?,java,android,realm,Java,Android,Realm,我正试图通过FCM推送通知将数据插入我的领域数据库,现在当我的应用程序打开时推送通知到达时,一切正常,但当我的应用程序未打开时当通知到达时,当我尝试插入数据时,我得到了错误` java.lang.IllegalStateException:无法在上传递回调 当前线程。无法在线程上自动更新领域 没有活套 我的FCM代码 Realm realm = Realm.getDefaultInstance(); realm.executeTransactio
我的应用程序打开时
推送通知到达时,一切正常,但当我的应用程序未打开时
当通知到达时,当我尝试插入数据时,我得到了错误`
java.lang.IllegalStateException:无法在上传递回调
当前线程。无法在线程上自动更新领域
没有活套
我的FCM代码
Realm realm = Realm.getDefaultInstance();
realm.executeTransactionAsync(new Realm.Transaction() {
@Override
public void execute(Realm bgRealm) {
story data = new story();
bgRealm.insertOrUpdate(data);
}
}, new Realm.Transaction.OnSuccess() {
@Override
public void onSuccess() {
// Transaction was a success.
}
}, new Realm.Transaction.OnError() {
@Override
public void onError(Throwable error) {
// Transaction failed and was automatically canceled.
}
});
有人能告诉我,当我的应用程序未打开时,我如何克服这个问题吗???您正在使用
realm.executeTransactionAsync()
这会导致问题,相反,您应该使用syncronious版本
realm.executeTransaction()
对于异步查询,您需要一个循环器来确保查询结果可以在Android上返回。您正在使用的
realm.executeTransactionAsync()
这会导致问题,相反,您应该使用syncronious版本
realm.executeTransaction()
对于异步查询,您需要一个循环器来确保查询结果可以在Android上返回