簡體   English   中英

Android應用程序在線程中調用方法后崩潰?

[英]Android App Crashing after calling method in a thread?

目前在我的Android游戲中有一個簡單的線程運行,每X毫秒將水平進度條減少1。 我正在嘗試實現一個方法,所以當進度條達到0時,TextView會變為“Game Over”。 只要以這種方式調用此函數,應用程序就會崩潰 我還正確初始化了變量,因此該方法應該可以毫無困難地看到這個TextView。

  public class MyThread extends Thread{ @Override public void run(){ while (counter > 0 && keepRunning){ counter = counter - 1; android.os.SystemClock.sleep(calculateSleepTick()); mHandler.post(new Runnable() { @Override public void run() { progressTest.setProgress(counter); } }); } isGameOver(); } } 

  public void isGameOver(){ scoreText.setText("Game Over"); } 

您的isGameOver函數設置UI元素的文本。 您不能在main之外的線程上調用UI元素的函數。 需要將其發布到UI線程才能執行此操作。

您無法在非UI線程中更新UI。 以這種方式調用isGameOver()

runOnUiThread(new Runnable() { @Override public void run() { isGameOver(); } });

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM