I like the event driven thought with complications to save resources, so I use them as my preferred datasource.
In the simulator however, the listener is also called when the value has not changed. Is this also on the device, or is that simulator only?