android中handler处理两个线程的困惑

我看了网上的教程是这样的,用handler除了一个线程,就是控制progressbar。于是我拓展了一下,我另外写了个计数的线程。先看源代码。

 

操作界面是这样的

 

我点击“开始”,运行runnabletimerRunnabler,,progressbar和倒计时开始进行。是设置runnable执行sleep,3秒后执行,timerRunnabler执行sleep,1秒后执行,但是从执行的效果上看是同步的,我的想法应该是不同步的。

我在logcat中看到了,他们执行是按顺序来的,也就是进入了线程队列里了。两者应该是独立的,为什么会同步执行呢

然后我点击“结束”,我让下面的倒计时任然继续。然后timerRunnabler执行是正常的,1秒一执行。

于是我的问题:

1、当点击"结束"按钮时,progressbar的progress没有归0,比如是50,点击"开始"时候,又在50的基础上开始输出,比如输出55
2、我这里是2个线程,runnable和timerRunnabler,为什么打印出当前线程的名字,是同一个,main
3、两个线程,runnable和timerRunnabler,执行的时间安排是,runnable:2000,timerRunnabler:1000,但实际执行的时候好像是同时执行的
 progressbar增加一格,textview计数增加1,而点击"结束",progressbar不再执行时,timerRunnabler执行是1秒一执行。

 

请赐教啊

handler的作用我理解是这样的,看图

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值