我不知道這是否是這個問題的適當標題,但它是這樣的。如何暫停主u.i線程(Android)
我正在我的主要u.i線程上運行for循環,長度約爲1000.這就好多了,我不應該在AsyncTask或其他東西中這樣做,因爲它需要很長時間並可能會凍結應用程序?是的,我知道,但重要的是我在主線上做的。
這裏談到的問題
我有,我想,當循環達到一定數量將其值設置的UI一個TextView。但是由於它與已經運行的循環競爭,所以直到循環完成後纔會運行。
for (int i = 0; i < 3000; i++){
if(i = 400) {
textView.setText('blah ' + i);
}
}
我的問題是,我如何暫停循環,更新textview並繼續循環,而在同一個線程。我試過沒有結果的Thread.yield()。任何建議,將不勝感激
「是的,我知道,但它的重要我做的主線」:你能解釋爲什麼嗎?你正確地確定了這個問題,在主線程上做很多工作並不是一個好主意。 – Henry
恐怕這是不可能的,因爲一個線程以線性方式執行代碼,而Java沒有'goto'。我看到了一些選項,比如在'for'語句中使用'break',更新UI並再次執行另一個'for',或者正確使用其他線程來並行化'for'循環並更新UI – nandsito
@Henry我不'不介意應用程序凍結,我更喜歡在循環運行時可以做任何事情。現在我想能夠暫停我的主線程,然後setTextview並繼續循環。 –