有没有办法在主线程暂停时从传感器获取值?
目标:我需要注册光传感器,主线程必须等待 10 秒,然后我必须在这 10 秒后得到一个平均值。
问题:我必须在主线程中等待,所以如果我做一段时间或睡眠,传感器不会得到任何值
我尝试了什么:我尝试在另一个线程或异步任务中注册传感器,但如果我将主线程暂停 10 秒(我尝试睡眠、处理程序、一段时间和连接),则什么也没有发生。一位用户建议我使用 Handler 和 onPause/onResume。我的实际代码是这样的,但是在主线程等待时我仍然没有得到任何东西:
public class MyActivity
{
private Lux light; //Lux implements SensorEventListener
private SensorManager mSensorManager;
protected void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.listeners);
mSensorManager = (SensorManager)getSystemService(SENSOR_SERVICE);
light=new Lux();
onPause();
}
@Override
protected void onResume()
{
mSensorManager.unregisterListener(light, mSensorManager.getDefaultSensor(Sensor.TYPE_LIGHT));
light.getAverage();
super.onResume();
}
@Override
protected void onPause()
{
super.onPause();
mSensorManager.registerListener(light, mSensorManager.getDefaultSensor(Sensor.TYPE_LIGHT),SensorManager.SENSOR_DELAY_FASTEST);
Handler h=new Handler();
h.postDelayed(myTask, 10000);
}
private Runnable myTask = new Runnable()
{
public void run()
{
onResume();
}
};
}
请帮我。