我不明白如何使用这种方法,
sensorManager.registerListener(SensorEventListener侦听器,传感器传感器,int速率,处理程序处理程序);
1)如果它使用SensorEventListener,那么Handler的目的是什么?
2)请举例说明我可以传递给它的处理程序?
谢谢!
mar*_*v00 21
这里有一个例子:
SensorManager mSensorMgr = (SensorManager) mContext.getSystemService(Context.SENSOR_SERVICE);
HandlerThread mHandlerThread = new HandlerThread("sensorThread");
mHandlerThread.start();
Handler handler = new Handler(mHandlerThread.getLooper());
mSensorMgr.registerListener(this, mSensorMgr.getDefaultSensor(Sensor.TYPE_ACCELEROMETER),
SensorManager.SENSOR_DELAY_FASTEST, handler);
Run Code Online (Sandbox Code Playgroud)
从android SensorManager类的源代码中,您可以看到registerListener()提取了Handler的Looper,用这个looper创建一个新的处理程序,调用onSensorChanged方法.
如果未传递处理程序,SensorManager将使用主应用程序线程.
Com*_*are 10
如果它使用SensorEventListener,那么Handler的目的是什么?
如果我不得不猜测,那么您可以在后台线程(例如,a HandlerThread)上传递您的传感器事件.默认情况下,传感器事件在主应用程序线程上传递,在某些情况下这很好.
| 归档时间: |
|
| 查看次数: |
10482 次 |
| 最近记录: |