android 定时器 Timer 使用 及其遇到的问题
来源:互联网 发布:大数据和电子政务 编辑:程序博客网 时间:2024/05/22 00:06
本人安卓初学者,错误请指正
timer = new Timer();timer.scheduleAtFixedRate(<span style="margin: 0px; padding: 0px; font-family: 'Courier New'; line-height: 18px; color: rgb(0, 0, 255);">new</span><span style="margin: 0px; padding: 0px; font-family: 'Courier New'; line-height: 18px;"> TimerTask(){ <br style="margin: 0px; padding: 0px;" /></span><span style="margin: 0px; padding: 0px; font-family: 'Courier New'; line-height: 18px; color: rgb(0, 128, 128);">2</span><span style="font-family: 'Courier New'; line-height: 18px; background-color: rgb(245, 245, 245);"> </span><span style="margin: 0px; padding: 0px; font-family: 'Courier New'; line-height: 18px;"> </span><span style="margin: 0px; padding: 0px; font-family: 'Courier New'; line-height: 18px; color: rgb(0, 0, 255);">public</span><span style="margin: 0px; padding: 0px; font-family: 'Courier New'; line-height: 18px;"> </span><span style="margin: 0px; padding: 0px; font-family: 'Courier New'; line-height: 18px; color: rgb(0, 0, 255);">void</span><span style="margin: 0px; padding: 0px; font-family: 'Courier New'; line-height: 18px;"> run() { </span><span style="margin: 0px; padding: 0px; font-family: 'Courier New'; line-height: 18px;"> </span>
<span style="margin: 0px; padding: 0px; font-family: 'Courier New'; line-height: 18px;"><span style="white-space:pre"></span>... ... <br style="margin: 0px; padding: 0px;" /></span><span style="margin: 0px; padding: 0px; font-family: 'Courier New'; line-height: 18px; color: rgb(0, 128, 128);">6</span><span style="font-family: 'Courier New'; line-height: 18px; background-color: rgb(245, 245, 245);"> </span><span style="margin: 0px; padding: 0px; font-family: 'Courier New'; line-height: 18px;"> <span style="white-space:pre"></span>} <br style="margin: 0px; padding: 0px;" /></span>
</pre><pre name="code" class="java">
<span style="margin: 0px; padding: 0px; font-family: 'Courier New'; line-height: 18px; color: rgb(0, 128, 128);">7</span><span style="font-family: 'Courier New'; line-height: 18px; background-color: rgb(245, 245, 245);"> </span><span style="margin: 0px; padding: 0px; font-family: 'Courier New'; line-height: 18px;">}</span>, 0, 500);
当我想使用定时器里在 run() 方法里面操作 ui 时发生错误,才想起来 ui 是线程非安全的
应该改为在 run() 方法里面使用 <span style="font-family: Arial, Helvetica, sans-serif;">handler.post(),或者 <span style="font-family: 'Courier New'; line-height: 18px; background-color: rgb(245, 245, 245);"> handler.sendMessage(message) </span></span>
<span style="font-family: Arial, Helvetica, sans-serif;"><span style="font-family: 'Courier New'; line-height: 18px; background-color: rgb(245, 245, 245);"></span></span><pre name="code" class="java"><span style="font-family: Arial, Helvetica, sans-serif;">handler.post() 会调用 </span><span style="font-family: Arial, Helvetica, sans-serif;">getPostMessage() 把 </span><span style="font-family: Arial, Helvetica, sans-serif;">Runnable 对象封装到 message 里边 </span>
<span style="font-family: Arial, Helvetica, sans-serif;"><span style="font-family: 'Courier New'; line-height: 18px; background-color: rgb(245, 245, 245);"></span></span><pre name="code" class="java"> private static Message getPostMessage(Runnable r) { Message m = Message.obtain(); m.callback = r; return m; }这时 msg.callback != null 所以调用 msg.callback 的 run()方法。
<span style="font-family: Arial, Helvetica, sans-serif;"><span style="font-family: 'Courier New'; line-height: 18px; background-color: rgb(245, 245, 245);">这个是在主线程中执行的。。</span></span>
0 0
- android 定时器 Timer 使用 及其遇到的问题
- Android中Timer定时器的使用
- java,android定时器(Timer)的使用
- timer 定时器的使用
- Timer定时器的使用
- 定时器Timer的使用
- Timer 定时器的使用
- timer定时器的使用
- Timer定时器的使用
- Timer定时器的使用
- Android 谨慎使用Timer定时器
- recyclerView列表使用Timer定时器复用错乱的问题
- java timer定时器的使用
- Boost::timer 定时器的使用
- Java Timer 定时器的使用
- Java Timer 定时器的使用
- Java Timer 定时器的使用
- Java Timer 定时器的使用
- 自定义标签实现分页简单化
- 1024!末尾有几个零?
- BZOJ 1269 [AHOI2006]文本编辑器editor Splay伸展树
- UVa11105 - Semi-prime H-numbers(sieve的思想)
- [LeetCode]Longest Valid Parentheses
- android 定时器 Timer 使用 及其遇到的问题
- css进阶读书笔记
- ZFXEngine开发笔记之Bump Mapping(2)
- Association Rule Mining(1-Apriori)
- 单高斯背景建模opencv仿真
- 使用nfs在mac os x与ubuntu之间共享文件
- hdu 4995 Revenge of kNN
- ABCD过桥题的规律
- friso中文分词器