android定时器与handler


初始时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和刷新时间

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值