Timer更新UI的方法
来源:互联网 发布:linux 小数计算 编辑:程序博客网 时间:2024/05/22 14:05
文章转载至http://my.oschina.net/u/1463230/blog/278780
Timer更新UI的方法。
错误写法:
- package com.test;
- import java.util.Timer;
- import java.util.TimerTask;
- import android.app.Activity;
- import android.os.Bundle;
- public class TestTimer_Wrong extends Activity {
- Timer timer = new Timer();
- TimerTask task = new TimerTask(){
- public void run() {
- setTitle("hear me?");
- }
- };
- public void onCreate(Bundle savedInstanceState) {
- super.onCreate(savedInstanceState);
- setContentView(R.layout.main);
- timer.schedule(task, 10000);
- }
- }
TimerTask 里面直接做UI更新,没有在UIThread里面。与Java的EDT线程,是同一概念。
正确写法一 : 交由UI Thread处理
- import java.util.Timer;
- import java.util.TimerTask;
- import android.app.Activity;
- import android.os.Bundle;
- public class TestTimer extends Activity {
- Timer timer = new Timer();
- TimerTask task = new TimerTask(){
- public void run() {
- runOnUiThread(new Runnable(){
- @Override
- public void run() {
- setTitle("hear me?");
- }});
- }
- };
- public void onCreate(Bundle savedInstanceState) {
- super.onCreate(savedInstanceState);
- setContentView(R.layout.main);
- timer.schedule(task, 10000);
- }
- }
正确写法二 :由Handler处理UI 更新。
- package com.test;
- import java.util.Timer;
- import java.util.TimerTask;
- import android.app.Activity;
- import android.os.Bundle;
- import android.os.Handler;
- import android.os.Message;
- public class TestTimer extends Activity {
- Timer timer = new Timer();
- Handler handler = new Handler(){
- public void handleMessage(Message msg) {
- switch (msg.what) {
- case 1:
- setTitle("hear me?");
- break;
- }
- super.handleMessage(msg);
- }
- };
- TimerTask task = new TimerTask(){
- public void run() {
- Message message = new Message();
- message.what = 1;
- handler.sendMessage(message);
- }
- };
- public void onCreate(Bundle savedInstanceState) {
- super.onCreate(savedInstanceState);
- setContentView(R.layout.main);
- timer.schedule(task, 10000);
- }
- }
但是,使用handler处理还会引发一个内存泄露的问题。详见http://blog.csdn.net/hunanly/article/details/46915199
0 0
- Timer更新UI的方法
- 用Timer更新UI
- 更新UI的方法
- 更新ui的方法
- android Timer 定时器 更新UI
- Android Timer 用法以及更新UI时的技巧
- Handler: 更新UI的方法
- Handler:更新UI的方法
- Handler:更新UI的方法
- Handler:更新UI的方法
- Android更新UI的方法
- android更新UI的方法
- Android更新ui的方法
- Timer 的Timer schedule()方法
- 跨线程更新UI控件的方法
- Handler更新UI的几种方法
- 子线程更新UI的方法
- android异步更新UI界面的方法
- AsyncTask源码分析
- WEB测试之网页测试
- NTFS For Mac如何使用
- 基于颜色的图像检索学习系统
- 字符串的判断
- Timer更新UI的方法
- oracle 使表主键失效,外键失效
- MyBatis
- 【LeetCode】237 Product of Array Except Self
- Android 性能分析案例
- C#中的Invoke
- PASSION之WEB监听器
- Wireshark数据抓包教程之Wireshark捕获数据
- Python学习之跨越篇