Cherry-pick DeviceMotionService CL from master [do not merge]

In DeviceMotionService, handle the fact that we may receive updates from SensorManager after unregistering.

cherry-pick of Change: d09001fea4

Bug: 5110230
Change-Id: Id1d1f51b445ce4a14bfcdfad8f173922e01b6563
This commit is contained in:
Steve Block
2011-08-03 14:03:24 +01:00
committed by Bart Sears
parent 1a230885b3
commit c4d93ba55f
2 changed files with 7 additions and 0 deletions

View File

@@ -99,6 +99,7 @@ final class DeviceMotionService implements SensorEventListener {
mUpdateRunnable = new Runnable() {
@Override
public void run() {
assert mIsRunning;
mManager.onMotionChange(new Double(mLastAcceleration[0]),
new Double(mLastAcceleration[1]), new Double(mLastAcceleration[2]),
INTERVAL_MILLIS);
@@ -157,6 +158,11 @@ final class DeviceMotionService implements SensorEventListener {
assert WebViewCore.THREAD_NAME.equals(Thread.currentThread().getName());
assert(event.sensor.getType() == Sensor.TYPE_ACCELEROMETER);
// We may get callbacks after the call to getSensorManager().unregisterListener() returns.
if (!mIsRunning) {
return;
}
boolean firstData = mLastAcceleration == null;
mLastAcceleration = event.values;
if (firstData) {

View File

@@ -188,6 +188,7 @@ final class DeviceOrientationService implements SensorEventListener {
assert(event.values.length == 3);
assert WebViewCore.THREAD_NAME.equals(Thread.currentThread().getName());
// We may get callbacks after the call to getSensorManager().unregisterListener() returns.
if (!mIsRunning) {
return;
}