前面一篇文章ATAAW.COM介紹了在Android中通過(guò)Handler來(lái)更新UI線程,做界面更新操作,實(shí)現(xiàn)了每個(gè)1000毫秒自動(dòng)更新一次UI,本文中我們來(lái)介紹另一種更新UI的操作,通過(guò)其他線程來(lái)更新主線程的UI。
我們上次提到,Android中是無(wú)法通過(guò)其他線程來(lái)更新主線程的UI的,那么是不是與我們這個(gè)文章標(biāo)題有沖突呢?其實(shí)不然,因?yàn)槲覀兯f(shuō)的其他線程是基于UI自身的。
private class NewThread implements Runnable{
@Override
public void run() {
while(!Thread.currentThread().interrupted()){
view.postInvalidate();
try {
Thread.sleep(1000);
} catch (InterruptedException e) {
e.printStackTrace();
}
}
}
}
注意這里使用的是View.postInvalidate()方法,而在Handler的例子中我們使用的是Invalidate()方法,下面在主UI線程中啟動(dòng)以上線程。
new Thread(new NewThread()).start();
以上所實(shí)現(xiàn)的UI更新跟使用Handler中實(shí)現(xiàn)的效果是一樣的。
?
鳳凰涅槃/浴火重生/馬不停蹄/只爭(zhēng)朝夕
???? 隱姓埋名/低調(diào)華麗/簡(jiǎn)單生活/完美人生