首页 新闻 搜索 专区 学院

android之ProgressDialog 完成数据加载时,关闭ProgressDialog的问题

0
悬赏园豆:50 [待解决问题] 解决于 2011-05-18 17:35

public class progress extends Activity {
public final static int TASK_LOOP_COMPLETE = 0;
ProgressDialog pd;
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
pd
= ProgressDialog.show(this, "", "loading...", true, true);


new Thread() {
public void run() {
try {
sleep(
5000);
}
catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
finally{
messageListener.sendEmptyMessage(TASK_LOOP_COMPLETE);
}
}
}.start();
}

private Handler messageListener = new Handler(){
public void handleMessage(Message msg) {
switch(msg.arg1){
case TASK_LOOP_COMPLETE:
pd.dismiss();
break;

}
}
};
}

问题补充: 上面的代码没有任何问题,场景:我做一个rss reader,通过读取某一网页的xml数据并将其绑定于listview进行显示,我是用(读取和绑定功能的函数替代了(sleep(5000))的位置,但是结果却是ProgressDialog一直没有出现了,恳请高手帮忙啊
shrally的主页 shrally | 初学一级 | 园豆:0
提问于:2011-05-03 17:35
< >
分享
所有回答(1)
0

这是一个线程,会一直运行,你把 

 

读取某一网页的xml数据并将其绑定于listview进行显示 放在这儿会一直运行,并且这个操作比较费时,这样写肯定会有问题啦

 

Android进度条编程是在线程中更新进度,或用消息机制发消息给来更新进度条

artwl | 园豆:16536 (专家六级) | 2011-05-03 21:15
这个问题最好的处理办法是使用 AsyncTask,已经解决了,谢谢哈
支持(0) 反对(0) shrally | 园豆:0 (初学一级) | 2011-05-05 13:39
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册