我是新來的多線程,所以請原諒我的潛在愚蠢的問題。如果你有多個使用runOnUiThread的線程,它們是不同的線程,還是它們都在一個線程上運行?
我需要在我的應用程序中使用幾個線程。但是,幾乎所有這些線程都會修改UI。我已經成功地使用了runOnUiThread,但我擔心的是,如果我創建不同的相同類型的線程,它們將全部在一個線程上運行,即「Ui線程」,這可能會減慢我的應用程序。
這是真的,還是我很誤會?
我的線程,我基本上將乘法:
private void goldPerSecondMethod() {
new Thread() {
public void run() {
while (goldCount < 1000) {
try {
runOnUiThread(new Runnable() {
@Override
public void run() {
goldCount += 0.1f;
textGoldCount.setText(goldCount + " Gold");
textGoldCount.setGravity(Gravity.CENTER);
}
});
Thread.sleep(1000);
} catch (InterruptedException e) {
e.printStackTrace();
}
}
}
}.start();
}
所有幫助表示讚賞!
我正在尋找postDelayed和Handlers :)但是我不明白的東西 - 在onCreate()中創建的Handler仍然綁定到UI線程,還是創建了一個全新的線程?再次感謝你,夥計:) – BipBapApps
@BipBapApps:「在onCreate()中創建的Handler仍然綁定到UI線程,還是創建了一個全新的線程?」 - 它綁定到主應用程序(UI)線程。如果你想把一個Handler綁定到另一個線程,可以使用HandlerThread。 – CommonsWare