處理器HND =新的處理程序(){爲什麼「msg.sendToTarget」會停止循環?
@Override
public void handleMessage(Message msg) {
int id = sequence.get(msg.arg1);
if(msg.arg1 % 2 == 0) {
sq.get(id-1).setBackgroundResource(R.drawable.square_show);
} else {
sq.get(id-1).setBackgroundResource(R.drawable.square);
}
}
};
@Override
public void onResume() {
super.onResume();
Thread background = new Thread(new Runnable() {
public void run() {
try {
for(int i = 0; i <= sequence.size()-1; i++) {
Thread.sleep(200);
Message msg = hnd.obtainMessage();
msg.arg1 = i;
msg.setTarget(hnd); // EDITED
msg.sendToTarget();
record_tv.setText(""+i);
}
} catch(Throwable t) {
}
}
});
background.start();
}
代碼到達msg.sendToTarget(),它做的事情,然後就再也沒有回來
也許你不應該捕捉異常,然後忽略它們。如果您至少記錄了異常情況,您可以回答自己的問題。 –
可能是record_tv.setTexT()導致塊catch被調用,並且運行結束。 Probaby你想要和for/try/catch? – Blackbelt