TransWikia.com

Android Пустой экран

Stack Overflow на русском Asked by llollcat on December 30, 2021

Хочу написать очередной проект для корзины, вот код:

package com.example.myapplication;

import androidx.appcompat.app.AppCompatActivity;
import android.widget.TextView;

public class MainActivity extends AppCompatActivity {


protected void onStart() {
    super.onStart();
    setContentView(R.layout.activity_main);

    TextView tw = findViewById(R.id.timer);
    int i = 0;
    while (true) {
        ++i;
        tw.setText(Integer.toString(i));
        try {
            Thread.sleep(1000);
        } catch (InterruptedException e) {
            e.printStackTrace();
        }

    }


}



}

Хочу увидеть 0, затем 1, затем 2 и тд с интервалом в 1 секунду

Однако вижу это, то есть пустой экран

Как решить?

One Answer

Вы усыпляете основной, UI поток приложения. В итоге система не успевает отрисовать интерфейс до следующего засыпания. Вам надо делать задержку в другом потоке. Для этого, например, можно вот такой код написать:

int i = 0;
TimerTask timerTask = new TimerTask() {
    public void run() {
        runOnUiThread(new Runnable() {              
            @Override
            public void run() {
                tw.setText(Integer.toString(i));
                i++;
            }
        });
    }
};
new Timer().schedule(timerTask, 0, 1000);

Answered by ЮрийСПб on December 30, 2021

Add your own answers!

Ask a Question

Get help from others!

© 2024 TransWikia.com. All rights reserved. Sites we Love: PCI Database, UKBizDB, Menu Kuliner, Sharing RPP