Android Handler(三)
16lz
2021-01-23
本帖最后由 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;
}
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;
}
更多相关文章
- 代码设置RelativeLayout相对位置设置
- android瀑布流代码
- 【Android】监听SDCard安装和卸载的代码片段(测试通过)
- android : 控件在代码中设置属性-setWidth(int pixels)或setHeig
- android用代码获取布局文件