Backendless Version (5.x, Developer)
Client SDK (Android)
Application ID: 43B8A63C-CC25-BE19-FFD0-A47A21B9BC00
I called removeUpdateListener() and removeBulkUpdateListeners() from sdk but nether handleResponse called nor handleFault called. I wrote code with two approaches but no one do anything i expected. please help me if you can.
-
add update listener and bulk update listener on Device Table, every things ok:
final EventHandler<Map> lockObjectUpdate = Backendless.Data.of("Device").rt(); lockObjectUpdate.addUpdateListener(String.format("objectId='%s'", mDevice.getObjectId()), new AsyncCallback<Map>() { @Override public void handleResponse(Map updatedLock) { updatedLock.put("bleDeviceName", mDevice.getBleDeviceName()); updatedLock.put("memberAdminStatus", mDevice.getUserAdminStatus()); listener.onResponse(new Device(updatedLock)); } @Override public void handleFault(BackendlessFault fault) { listener.onSingleNetworkListenerFailure(new FailureModel(fault.getMessage())); } }); final EventHandler<Map> lockObjectBulkUpdate = Backendless.Data.of("Device").rt(); lockObjectBulkUpdate.addBulkUpdateListener(String.format("sn='%s'", mDevice.getSerialNumber()), new AsyncCallback<BulkEvent>() { @Override public void handleResponse(BulkEvent response) { if (response.getCount() >= 1) { listener.onResponse(new TempDeviceModel(mDevice.getObjectId())); } } @Override public void handleFault(BackendlessFault fault) { listener.onSingleNetworkListenerFailure(new FailureModel(fault.getMessage())); } });
Then after some time, i removed listeners but listener after call these lines still are exist;
First Approach:
Backendless.Data.of(“Device”).rt().removeUpdateListeners();
Backendless.Data.of(“Device”).rt().removeBulkUpdateListeners();
Second Approach:
Backendless.Data.of(“Device”).rt().removeBulkUpdateListener(
String.format(“sn=’%s’”, mDevice.getSerialNumber()), new AsyncCallback() {
@Override
public void handleResponse(BulkEvent response) {
Timber.d(“removeListenerForDevice1 done!”);
}
@Override
public void handleFault(BackendlessFault fault) {
Timber.d("removeListenerForDevice1 done!");
}
});
Backendless.Data.of("Device").rt().removeUpdateListener(
String.format("objectId='%s'", mDevice.getObjectId()), new AsyncCallback<Map>() {
@Override
public void handleResponse(Map response) {
Timber.d("removeListenerForDevice2 done!");
}
@Override
public void handleFault(BackendlessFault fault) {
Timber.d("removeListenerForDevice2 done!");
}
});