Я создал два TextViews и обновил их содержимое с помощью двух разных обработчиков, по одному для каждого TextView.Я увеличиваю два счетчика в обоих обработчиках, по одному в каждом, и публикую их значения в соответствующем TextView.
Мой первый обработчик тикает в соответствии со значением переменной длинной скорости, а второй обработчик тикает в 10 раз позже.
public class Main extends Activity{
private View root;
private final Context context = this;
private int count1 = 0, count2 = 0;
private TextView view1, view2;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
init();
}
private void init() {
setContentView(R.layout.s_main);
root = findViewById(R.id.root);
view1 = findViewById(R.id.txv1);
view2 = findViewById(R.id.txv2);
//
ViewTreeObserver vto = root.getViewTreeObserver();
vto.addOnPreDrawListener(new ViewTreeObserver.OnPreDrawListener() {
@Override
public boolean onPreDraw() {
root.getViewTreeObserver().removeOnPreDrawListener(this);
startRuns();
return true;
}
});
}
private void startRuns() {
try {
final long sleep = 10;
final Handler handler1 = new Handler();
handler1.postDelayed(new Runnable() {
@Override
public void run() {
view1.setText(String.valueOf(count1++));
handler1.postDelayed(this, sleep);
}
}, 1);
final Handler handler2 = new Handler();
handler1.postDelayed(new Runnable() {
@Override
public void run() {
view2.setText(String.valueOf(count2++));
handler2.postDelayed(this, sleep * 10);
}
}, 1);
Threads.run = true;
} catch (Exception ex) {
Alerts.alert(context, ex.getMessage());
}
}
}
Это хорошо, пока значение скорости не станет 10 или выше, но как только я установлю значение скорости на 1, оба обработчика будут работать с одинаковой продолжительностью или скоростью.Первый обработчик должен работать со скоростью 1, а второй обработчик должен работать со скоростью 10, но оба работают со скоростью 10 мс.
EDIT
Короче говоря,минимальная задержка, с которой работает postDelayed, составляет 10 мс, не менее этого, не 1, не 5, не менее 10. Мне нужно запустить исполняемый файл с задержкой в 5 мс в проекте.
Можете ли вы предложитьгде я не прав?