У меня есть рабочее приложение, которое мне нужно настроить. Я пытаюсь получить ярлык, чтобы обновлять каждые «n» секунды с помощью метода postDelayed, но я только заставляю его задерживать время, в которое он впервые показывает, и обновлять ярлык так часто. Я попробовал несколько способов использования метода Runnable с postDelayed, но я не смог ничего сделать, кроме как, опять же, задержать начальную запись. Я был бы признателен за любые отзывы или советы относительно того, как заставить его работать. «TextLightReading.setText» - это метка, на которую я пытаюсь отложить обновление.Использование postDelayed для данных датчика
`@Override
public void onSensorChanged(final SensorEvent event) {
if (event.sensor.getType() == Sensor.TYPE_LIGHT) {
final Handler mHandler = new Handler();
mHandler.postDelayed(new Runnable() {
@Override
public void run() {
mHandler.postDelayed(this, 1000);
final float lux = event.values[0];
final float conversion = Math.round(((1/638f) * lux) * 100.0f)/100.0f;
textLightReading.setText("Light: " + conversion);
}
}, 1000);
}
}`
Это еще одна попытка ...
`@Override
public void onSensorChanged(final SensorEvent event) {
if (event.sensor.getType() == Sensor.TYPE_LIGHT) {
float lux = event.values[0];
final float conversion = Math.round(((1/638f) * lux) * 100.0f)/100.0f;
final Handler mHandler = new Handler();
mHandler.postDelayed(new Runnable() {
@Override
public void run() {
textLightReading.setText("Light: " + conversion);
//mHandler.postDelayed(this, 1000);
}
}, 1000);
}
}`
Я уверен, что я просто не понимаю, как это использовать. Еще раз спасибо.
ваш первый результат попытки в рекурсии, так как вы назвали его на вершине, вторая попытка всякий раз, когда сменяется датчик, он создаст новый обработчик, поэтому, если датчик быстро изменится, это приведет к появлению многих экземпляров обработчика, попробуйте создать объект Single Handler и поместиться внизу. –
Итак, я бы только завернул оператор if в обработчике/Runnable? Я считаю, что я тоже пробовал это, имея только тот же результат в задержке в первом посте этикетки. –