This is an answer to your question:
why I need to track my previous acceleration. onSensorChanged(MotionEvent event){} is called when there is a change in acceleration. It provides the new acceleration and not the change in acceleration.
The short answer is, integrating the reading w/o including the initial condition (your total previous acceleration) you will end up with a value that does not include all the information. Plus, the longer you go the further your value gets from the real value because you are losing more and more information.
I do not think you want an explanation of acceleration, velocity and displacement (and this is not the place for that) so maybe I can show it by expanding the example I included above.
A phone resting on its back on a table with the bottom facing my chest is moved to the right for an arbitrary distance and stops. If you look at your data you will get something like this. Of course the actual numbers will vary widely but their signs will be the same and the proportions will be kind of the same but will start smaller than they peak like you would expect (unless you fired it out of a gun at a wall or whatever).:
Time...........Accel Reading...........Total Accel........Total Velocity
00ms.............. 0.0......................0.0.......................0.000..
10ms.............. 0.5......................0.5.......................0.005 m/s..
20ms.............. 0.5......................1.0.......................0.015 m/s..
30ms............. 0.5......................1.5.......................0.030 m/s..
40ms............. -0.5......................1.0.......................0.040 m/s..
50ms............. -0.5......................0.5.......................0.045 m/s..
60ms............. -0.5......................0.0.......................0.045 m/s..
70ms............. -0.5.....................-0.5.......................0.040 m/s..
80ms............. -0.5.....................-1.0.......................0.030 m/s..
90ms............. -0.5.....................-1.5.......................0.015 m/s..
100ms............. 0.5.....................-1.0.......................0.005 m/s..
110ms............. 0.5.....................-0.5.......................0.000 m/s..
120ms............. 0.5......................0.0.......................0.000 m/s..
You can see that if you do not track total acceleration your total velocity would be the column marked Total Accel above. That would mean your phone would be moving in the positive direction of the x-axis the whole time but your velocity would be negative (moving backwards) the last half of the movement.
I hope this proves my case even if it does not explain the mechanics behind acceleration or accelerometers.
If you wanted to look-up how the accelerometer works they are MEMS type sensors and I think they use a suspended cantilever beam with a weighted end to measure the force of acceleration.