Есть ли способ получить значения от датчика, в то время как основной thred приостановлен?Получить значения датчиков, если основная нить приостановлена
ЦЕЛЬ: Мне нужно зарегистрировать датчик освещенности, основной поток должен ждать 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, чтобы сделать то, что именно? Извините, но я начал использовать Android в прошлом месяце. –