有沒有辦法在主幹暫停時從傳感器獲取值?在主線程暫停時獲取傳感器值
目標:我需要註冊光線傳感器,主線程必須等待10秒,然後我必須在這10秒後得到一個平均值。
問題:我必須等待在主線程,因此,如果我做了一段時間或睡眠時,傳感器沒有得到任何價值
我的嘗試:我試圖在另一個線程來記錄傳感器或asynctask,但沒有任何事情發生,如果我暫停主線程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();
}
};
}
請幫助我。
因此,我需要在oncreate runnable做到底是什麼?對不起,我上個月開始使用android。 –