postDelayed总结
postDelayed对象是在主线程调用的:可以直接改ui
所以:不能在postDelayed中获取网络数据,即使是在service中
private Handler m_Timer = new Handler();
private Runnable r = new Runnable() {
public void run() {
title_text.setText("自选"+(a++));
for(int i=0;i<m_Observer.size();++i) {
m_Observer.get(i).TimerUpdate(0);
}
m_Timer.postDelayed(r, 1000);
}
};
public void Stop(){
m_Timer.removeCallbacks(r);
}
public void Start(){
m_Timer.postDelayed(r, 1000);
}
postDelayed调用子线程:
private Runnable newThread =new Runnable() {
@Override
public void run() {
if (mainActivity.queue.size() > 0) {
String word = null;
if ((word = mainActivity.queue.poll()) != null) {
mainActivity.avicTts.speak(word);
}
}
}
};
private Runnable speakRun = new Runnable() {
public void run() {
new Thread(newThread).start();
mHandler.postDelayed(speakRun, 500);
}
};
文章来源: blog.csdn.net,作者:网奇,版权归原作者所有,如需转载,请联系作者。
原文链接:blog.csdn.net/jacke121/article/details/54573476
- 点赞
- 收藏
- 关注作者
评论(0)