从内部匿名类访问和修改变量

时间:2016-06-23 12:32:07

标签: java android realm

我有以下代码:

boolean gameSuccess = false;
@Override
    public boolean saveMission(final Mission mission) {
        realm = Realm.getInstance(realmConfiguration);

        realm.executeTransactionAsync(new Realm.Transaction() {
            @Override
            public void execute(Realm realm) {
                realm.copyToRealm(mission);
            }
        }, new Realm.Transaction.OnSuccess() {
            @Override
            public void onSuccess() {
                Log.d(TAG, "onSuccess: mission saved");
                realm.close();
                missionSuccess = true;
            }
        }, new Realm.Transaction.OnError() {
            @Override
            public void onError(Throwable error) {
                Log.d(TAG, "onError: mission failed");
                realm.close();
                missionSuccess = false;
            }
        });
        return gameSuccess;
    }
即使调用onSuccess,

gameSuccess也始终为false。完成这项工作的方法是什么?

1 个答案:

答案 0 :(得分:0)

异步不会阻塞,因此您的代码错误。交易在返回之前不会发生,但是之后的任何未指定的时间,这就是为什么它总是错误的。

您需要为您的方法提供回调或将事务转换为阻止

realm.executeTransaction(...)

{{1}}