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);
}
};
postDelayed总结
最新推荐文章于 2021-12-21 15:31:42 发布