android中handler延迟问题
如下面两端代码都是在新线程中的run方法中,为什么会有不同的结果,我想实现的是将数字按秒递增的效果,第一种方式为什么不是我想要的结果,senMessageDelayed()这个方法不是延迟发送么,理论上应该是和第二段代码等效吧,求大神解释这个函数的机制。
int a = 1;
while(true)
{
Message m = new Message();
m.obj = ""+a;
m.what = 0x123;
handler.sendMessageDelayed(m, 1000);
a++;
}
int a = 1;
while(true)
{
Message m = new Message();
m.obj = ""+a;
m.what = 0x123;
try {
Thread.sleep(1000);
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
handler.sendMessage(m);
a++;
}
leonana
9 years, 3 months ago