Once because the listener is assigned during creation and when it gets triggered it causes it to be recreated I think.

The key events would be add, remove, change and sync i think.