楼主:
GooLoo (平凡)
2017-04-02 16:24:22http://ideone.com/bVJ1J4
请问一下
为什么我button2可停止runnable1
但i=100那边就不行
我有读log,有执行removeCallbacks说
我猜是i初始化的位置不对,你全部都使用runnable1所以i只会被初始化一次,你执行第二次后i都会大于100我好像看错了0.0
楼主:
GooLoo (平凡)
2017-04-02 21:26:00i的值有log出,是对的,只是数到100以上,停不下
作者:
nick03008 (Rubikcode)
2017-04-02 21:40:00将 runnable 内的 remove的参数改为 this 看看
作者:
ssccg (23)
2017-04-03 04:16:00run里面最后的执行顺序是 handler1.sendMessage →handler1.removeCallbacks → 结束换handler handleMessage→ handler1.post 以上最后结果就是handler再跑一次run解决方法就是最后加个else,把sendMessage放在else里面需要再搞清楚handler、message queue的原理另外要注意new Handler(),这样handler还是跑在main thread并没有另一个thread其实run里面的removeCallbacks是多余的,post只会执行一次没再sendMessage/post本来就不会再跑
楼主:
GooLoo (平凡)
2017-04-03 08:45:00感谢ssccg大大, 我有在各函式中加Log, 看跑的顺序了
作者:
y3k (激流を制するは静水)
2017-04-03 13:28:00你应该搞错Handler的用法了
作者:
zop (ㄞ肝ㄞ肝~一元二十罐~)
2017-04-03 14:38:00这个不是thread...