2016-11-06 20 views
0

我是Android開發人員, ,我決定在我的應用程序中使用領域。Realm非循環線程回撥

我實現了推送通知,所以當我從服務器獲得推送時,我想更新數據庫並在提交完成時收到通知。 我試過realm.executeTransactionAsync,但它沒有得到回調,當它結束時,我認爲它是因爲它從非Looper線程打開。 所以我試圖realm.executeTransaction(交易,回調) 但它已被棄用在版本1.0.0,所以我不能使用它。

所以,現在我使用版本1.0.0,但我不明白我怎麼能得到一個成功的回調,像一個服務非循環線程內的交易?

回答

0

首先,UI線程默認與Looper關聯。您可以通過致電realm.isAutoRefresh()進行檢查。

根據API你可以使用:

realm.executeTransactionAsync(new Realm.Transaction() { 
     @Override 
     public void execute(Realm realm) { 

     } 
    }, new Realm.Transaction.OnSuccess() { 
     @Override 
     public void onSuccess() { 

     } 
    }, new Realm.Transaction.OnError() { 
     @Override 
     public void onError(Throwable error) { 

     } 
    }); 
+0

感謝您的答覆,我已經嘗試過executeTransactionAsync但從來沒有的onSuccess叫。 –

+0

檢查它,它工作。請發佈你的代碼('onReceive()'方法) – YossiF