3
atm我的實際Android應用程序出現問題。在Android中連續運行Handler任務
對於解釋:
起初,我想表現出一個TextView字符由字符文本。這是我爲這個
tvIntro.setText("");
final Handler textHandler = new Handler();
for(int i=0; i<intro.length();i++){
final int finalCount = i;
textHandler.postDelayed(new Runnable() {
@Override
public void run() {
tvIntro.setText(tvIntro.getText() + (intro.charAt(finalCount)+""));
}
}, 150 * i);
}
實際的代碼顯示整個文本後,我想打一個聲音不斷改變屏幕的顏色爲5秒。對於這一點,我的代碼是:
myBackground.setBackgroundColor(Color.RED);// set initial colour
final Thread blink = new Thread(new Runnable() {
public void run() {
while (getRunning()) {
try {
Thread.sleep(100);
if(start[0] !=1){
mp.start();
start[0] = 1;
}
}
catch (InterruptedException e) {
e.printStackTrace();
}
updateColor(myBackground);
whichColor = !whichColor;
}
}
});
private void updateColor(final RelativeLayout myBackground) {
runOnUiThread(new Runnable() {
@Override
public void run() {
if (whichColor)
myBackground.setBackgroundColor(Color.RED);
else
myBackground.setBackgroundColor(Color.GREEN);
}
});
}
所有功能都工作,但我想也完成了第一個處理程序,執行第二處理程序之前。此外,第二個處理程序應該在x秒後停止。
我對理解處理程序和線程是如何工作有些問題。 如果你的某個人爲我解決問題,那該多好。
如果你想完成一個處理程序,設置爲null,例如:「textHandler = null;」,否則它將一直存在,直到它的活動完成。 –