我正在使用Realm來爲我的database
處理我的Android Application
。 但是,當我嘗試從Runnable
添加/刪除RealmChangeListener
時,我得到exception
。領域:在Runnable中使用RealmChangeListener
java.lang.IllegalStateException:你不能刪除/從非彎針線
註冊監聽 如果我不使用可運行它的正常工作。下面 是我的代碼:
public void clearDatabase(final RealmChangeListener realmChangeListener) {
Realm realm = RealmManager.getNewInstance().getRealm();
realm.addChangeListener(realmChangeListener);
realm.beginTransaction();
realm.clear(RBooking.class);
realm.commitTransaction();
}
工作代碼:
protected void clearData() {
mDatabaseManager.clearDataBase(new RealmChangeListener() {
@Override
public void onChange() {
TLog.d("Feb 23 : Database has been clean completed!");
}
});
}
編輯:更新不工作代碼:
protected void processLogout() {
Runnable runnable = new Runnable() {
@Override
public void run() {
Looper.prepare();
mDatabaseManager.clearDataBase(new RealmChangeListener() {
@Override
public void onChange() {
TLog.d("Feb 23 : Database has been clean completed!");
}
});
Looper.loop();
}
};
doTask(runnable); // excute the runnable
}
所以任何機構可以幫我使RealmChangeListener在Runnable上正確工作。謝謝。
嗨@Christian,有沒有什麼辦法可以將我的偵聽器添加到Runnable而不是HandlerThread? –
如果runnable運行在標準線程上,但不是爲了不只是在LooperThread上執行runnable? –
我執行Service中的runnable,我認爲Service可能被稱爲LooperThread的一種,那是錯的嗎? –