在使用Timer的时候经常遇到需要更新UI。因为Timer的执行事件是子线程,是无法直接操作UI的。这时候要使用到 Handler
Timer 主要属性 scheduleAtFixedRate(要执行的方法,开启后多久执行,间隔时间多久执行) ;
- scheduleAtFixedRate(new MyTask(),0,1000);//我有一个MyTask类在0毫秒后执行,每间隔1秒执行一次
- zhxct=((TextView)findViewById(R.id.zhixingcount));//我窗体上的空间
- class MyTask extends java.util.TimerTask{
- @Override
- public void run() {
- // if(i==10)
- // this.cancel();
- // TODO Auto-generated method stub
- i++;
- //System.out.println(i);
- //异步操作页面
- Bundle bundle = new Bundle();
- bundle.putInt("zxc", i);
- Message mag=new Message();
- mag.setData(bundle);
- han.sendMessage(mag);
- }
- }
- //更新UI
- private Handler han=new Handler(){
- public void handleMessage(Message msg)
- {
- Bundle bundle= msg.getData();
- int s= bundle.getInt("zxc");
- zhxct.setText("执行次数:"+s);
- }
- };
来源: http://www.phpxs.com/code/1001872/