本帖最后由 4546 于 2011-8-10 10:28 编辑


java代码:
// 存放数据

date.putInt("time", total);

msg.setData(date);

msg.what=0;

myHandler.sendMessage(msg);



//另一种写法

// Message msg=myHandler.obtainMessage();

// Bundle date = new Bundle();

// 存放数据

// date.putInt("time", total);

// msg.setData(date);

// msg.what=0;

// msg.sendToTarget();

}



@Override

public void TaskRun() {

updateTimerValues();

}
复制代码
实现Button按钮的事件处理以此进入倒计时操作。这里使用的Timer 来执行定时操作(其实我们完全可以另起一个线程)。Task类继承了TimerTask类,里面增加了一个任务处理接口来实现回调模式,应此 Activity需要实现该回调的接口 ITaskCallBack(这样做是因为我比较不喜欢内部类的编写方法)。

  ICallBack接口和Task类

java代码:
public interface ITaskCallBack {

void TaskRun();

}



public class Task extends TimerTask {

private ITaskCallBack iTask;

public Task(ITaskCallBack iTaskCallBack) {

super();

iTask=iTaskCallBack;

}



public void setCallBack(ITaskCallBack iTaskCallBack) {

iTask=iTaskCallBack;

}



@Override

public void run() {

// TODO Auto-generated method stub

iTask.TaskRun();

}



}
复制代码
  这是Java的回调函数的一般写法。  实现CallBack

java代码:
/** * 实现消息处理 */



@Override

public boolean handleMessage(Message msg) {

switch(msg.what)

{



case 0:

Bundle date=msg.getData();

txt.setText(String.valueOf(date.getInt("time")));

Log.d("ThreadId", "HandlerMessage:"+ String.valueOf(Thread.currentThread().getId()));

Log.d("ThreadId", "msgDate:" + String.valueOf(date.getInt("time")));

break;

}



return false;

}

更多相关文章

  1. 代码设置RelativeLayout相对位置设置
  2. android瀑布流代码
  3. 【Android】监听SDCard安装和卸载的代码片段(测试通过)
  4. android : 控件在代码中设置属性-setWidth(int pixels)或setHeig
  5. android用代码获取布局文件

随机推荐

  1. Android(安卓)Adapter的那些事
  2. Eclipse用svn管理Android项目问题 (转来
  3. Android字体大小多屏幕适配
  4. 手机应用开发 第三节:PhoneGap and Dojo M
  5. Android(安卓)之 Handler总结
  6. android之view获取getWidth()和getHeight
  7. 移动 App 已经趋近饱和,那么 Android(安卓
  8. Android(安卓)P/9.0 http网络请求异常
  9. Android开发学习笔记之一
  10. Android(安卓)SDK安装遇到的问题