У меня есть несколько вопросов в следующем коде: < /p>
- Код работает как -> Oncreate -> runtimer () (Skips handler.post ()) -> OnTart -> onResume -> возвращается к Handler.post (). < /li>
< /ol>
Почему он пропускает hander.post () < /code> в первую очередь? < /p>
У меня есть два textview.settext (). Но первый не работает. Это всегда последний. Я положил второй, чтобы увидеть, что делает код после метода postdelay (). < /Li>
< /ol>
Почему первый не работает? Я ожидаю, что текст будет прыгать вперед и назад от «Привет» на «HH: MM: SS». < /li>
< /ol>
Запускает ли код работает нормально, и когда его 1 секунду называется Postdelay ()? Разве это не должно быть .run () < /code>? < /p>
Код: Выделить всё
public class MainActivity extends AppCompatActivity { private boolean running = false; private int counter = 0; private Handler handler = new Handler(); @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); runTimer(); } public void onClickStart(View view){ running = true; } public void runTimer(){ final TextView textView = findViewById(R.id.timer); handler.post(new Runnable() { @Override public void run() { int hours = counter/3600; int minutes = (counter%3600)/60; int secs = counter%60; String time = String.format("%d:%02d:%02d", hours, minutes, secs); textView.setText(time); // Doesn't set it to this - see last line if(running){ counter++; } handler.postDelayed(this,1000); // what does happens between next one second textView.setText("hell0"); // Always set it to this } }); }
Подробнее здесь: https://stackoverflow.com/questions/568 ... st-settext