這是我的問題。我正在編寫一個android應用程序,它需要顯示它正在運行的活動的時間。爲此,我創建了一個新的線程,該線程從活動中調用。但是,當我在模擬器中啓動應用程序時,似乎Activity從不加載。也許你們可以在這裏幫助我。這裏是相關的代碼:以線程更新UI活動
public class ActivityStartTracker extends ActivityBasic {
TimerThread timer;
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.start);
timer = new TimerThread();
}
protected void onResume() {
super.onResume();
registerReceiver(broadcastReceiver, new IntentFilter(
ServiceLocator.BROADCAST_ACTION));
timer.run();
}
protected void onPause() {
super.onPause();
unregisterReceiver(broadcastReceiver);
if (timer.isRunning()) {
timer.interrupt();
}
}
class TimerThread extends Thread {
boolean isRunning = false;
public TimerThread() {
}
@Override
public void run() {
int seconds = 0;
isRunning = true;
while (isRunning) {
try {
Log.d(TAG, "Timer is running for : " + seconds);
seconds++;
Thread.sleep(1000);
} catch (InterruptedException e) {
isRunning = false;
}
}
}
public boolean isRunning() {
return isRunning;
}
}
}
就像我說的,這些是相關的代碼片段。 問題是,如果我運行這個,活動保持黑色 - 我只是得到與應用程序的名稱頭,這就是所有。通過日誌記錄,我可以確認線程正在運行,但沒有其他顯示。
你可以請我幫忙,我對android比較陌生。
非常感謝 - 已經提前。
hy!我沒有看到你更改gui的代碼?我想要在線程中更新gui,您必須使用'runOnUIThread()' – test123123
那是真的 - 在我嘗試添加顯示定時器的新功能之前,GUI工作正常 - 因此我想我可以刪除所有findView()和setText()方法。我只是想展示問題的核心 - 所以你們不必讀取所有不必要的代碼行。 – Daniel