初始时isContactListInited=-1,此时在LogCat中打印login UI;
当isContactListInited=0时,显示Toast提示;
当isContactListInited=1时初始化完毕,执行fillData()更新UI界面。
可以根据自己的需要填充fillData函数,刷新界面。
下面代码主要是将timer,timerTask和Handler结合完成定时刷新的功能。Handler可以单独使用,在需要的位置执行mHandler.sendMessage(message)就可以了~
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.msn_listview);
// 定时器定时刷新界面
Timer mTimer = new Timer();
//handler,接收消息,同时根据不同的值执行相应的操作
Handler mHandler = new Handler() {
public void handleMessage(Message msg) {
switch (msg.what) {
case 1:
//好友列表初始化完成
// Toast.makeText(MSNContactsList.this, "初始化好友列表完成", Toast.LENGTH_SHORT).show();
fillData();
Log.i("helen", "inited completed");
// 关闭定时器
// mTimerTask.cancel();
break;
case -1:
//刚进入登陆界面
Log.i("helen","login UI");
break;
case 0:
//正在初始化好友列表
Toast.makeText(MSNContactsList.this, "正在初始化好友列表,请稍候", Toast.LENGTH_SHORT).show();
Log.i("helen","initing contactsList");
break;
}
}
};
mTimerTask = new TimerTask() {
@Override
public void run() {
//消息,通过监听isContactListInited的值发送不同的消息,执行相应的操作
Message message = new Message();
message.what = MSNEntity.getIsContactListInited();
Log.d("helen", "timer" + message.what);
if (message.what == 1)
{
mHandler.sendMessage(message);
// 关闭定时器
mTimerTask.cancel();
}
else
{
mHandler.sendMessage(message);
}
/*
* // It doesn't work updating the UI inside a timer. Calendar
* cal = Calendar.getInstance();
* mButton.setText(cal.toString());
*/
}
};
mTimer.schedule(mTimerTask, 500, 500); //设置定时器的task和刷新时间
}