On a real device the compute() function of the DataField is always being called (this is repeated many times on the forum for the simple use case when the user has multiple pages and the datafield is not on the active page) Of course this is also the case when a DataFieldAlert is being shown (otherwise we would have gaps in the data recorded by the datafied).
However this is not the case in the simulator (SDK 8.4.0, fr955).
Also related: bug: DataFieldAlert.onUpdate is called every second in the simulator but not on real device