可以看到在onCreate 方法中线程的ID是1(UI线程) 这与 HandlerMessage 进行消息处理时是所作的线程ID是一样的,而消息发送的线程ID则为8非UI线程。

  使用Threadle进行实现

java代码:
public class ThreadHandlerrActivity extends Activity implements Callback, OnClickListener {

private TextView txt;

private Button btnStart, btnStop;

private Handler myHandler;

private TimerThread timerThread;

private int Total=30;

/** Called when the activity is first created. */

@Override

public void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

setContentView(R.layout.main);

txt = (TextView) findViewById(R.id.txt);

btnStart = (Button) findViewById(R.id.btnStartTime);

btnStop = (Button) findViewById(R.id.btnStopTime);

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

myHandler = new Handler(this);

btnStart.setOnClickListener(this);

btnStop.setOnClickListener(this);

}

/** * 实现消息处理 */

@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;

}

@Override

public void onClick(View v) {

switch (v.getId()) {

case R.id.btnStartTime:

//自定义的线程

timerThread=new TimerThread(myHandler,60);

timerThread.start();

break;

case R.id.btnStopTime: timerThread.stop();

//timerThread.destroy();

break;

}

}



}

更多相关文章

  1. Android(安卓)USB Host与HID通讯(二)
  2. [置顶] android 深入理解AnsyncTask
  3. Android各框架的总结及选型
  4. SpringBoot webSocket 发送广播、点对点消息,Android接收
  5. Android消息机制——Handler
  6. Android系统 应用图标显示未读消息数(BadgeNumber) 桌面app图标
  7. php如何解析IOS/Android上传的Json消息
  8. Android定义定时器实现定时任务(亲测可用)
  9. Android消息机制系列(2)——Handler源码解析及用法实例

随机推荐

  1. 微信小程序实现简易封装弹窗
  2. 闭包的原理与经典应用场景 、访问器属性
  3. 微信小程序实现漂亮的弹窗效果
  4. 获取表单元素,dom树的遍历与常用属性
  5. js闭包/类创建/解构赋值
  6. 头像结构怎么画?人物头像素描步骤
  7. 优雅的获取表单元素、dom树的遍历与常用
  8. MyCms 自媒体 CMS 系统 v2.6,SEO 优化升级
  9. Linux上搭建meterSphere
  10. Go语言什么时候该使用指针