This question is basic for Java, not android. If the code that is inside listener interface does some complex calculations, what happens for callbacks given by the system. In Android, accelerometer readings are collected in onSensorChanged(SensorEvent event). If I want to process "event" data and that its called around 30-40 times a second. What happens ?
Does this reduces the calls to function? Or Does this lags the output but all call will finally get executed ?
I know this should be handled in separate thread, but if large number of threads keep generating , this may be a problem. Also I cannot rely on Java System.currentTimeMillis(); for pinging every say 500 milliseconds as this is never reliable (in a way it guarantees the function will not called before 500 ms but not maximum time like it may be even after 1000 millisecond, which in my case would be a problem as I need data atleast in 500ms). Even if I get 10 out of 30 callbacks , I have no loss for my application.
But can anyone explain what the virtual machine does ?
Or should I consider TimerTask instead for collecting data every 500 ms?