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总结
最新推荐文章于 2026-05-02 06:38:34 发布
本文探讨了Android应用中如何正确使用postDelayed方法进行UI更新,并强调了避免在网络请求中使用该方法的重要性。同时,介绍了如何通过创建子线程来处理后台任务,确保主线程的流畅运行。
9531

被折叠的 条评论
为什么被折叠?



