1.在Activity的onCreate()方法中加入以下代码:
//显示ProgressDialog
progressDialog = ProgressDialog.show(ListView1Activity.this, "请稍后...", "加载中...");
//开启一个新线程,在线程里执行耗时方法
new Thread(new Runnable(){
@Override
public void run() {
// TODO Auto-generated method stub
caculatingRecomm();
pdHandler.sendEmptyMessage(0);
}
}).start();
2.//计算推荐方法,比较耗时,用户放到一个线程里执行
public void caculatingRecomm(){
//测试RecommRule
Log.i("test","exec??0");
RecommendRule rr = new RecommendRule(ListView1Activity.this);
Log.i("test","exec??1");
Map<Show,Channel> maps = rr.show_channel(1);
//
rr.caculatingRecommendationRate(1);//0表示user1的userId
for(Entry<Show,Channel> entry:maps.entrySet()){
Log.i("test",entry.getKey().getShowName()+"--"+entry.getValue().getChannelId()+"--"+entry.getValue().getChannelName());
}
Log.i("test","exec??2");
}
3.//ProgressDialog的pdHandler
Handler pdHandler = new Handler(){
@Override
public void handleMessage(Message msg) {// handler接收到消息后就会执行此方法
progressDialog.dismiss();// 关闭ProgressDialog
}
};
三步搞定,非常实用,无论是加载网络数据,还是计算比较耗时的推荐规则。
refer to:
http://blog.csdn.net/barryhappy/article/details/7376231