znl_12 2013-03-14 07:42 采纳率: 0%
浏览 2125
已采纳

使用动态文本更新 UI出现的问题

我想每5秒钟更新一次屏幕上的文本,就创建了一个 timer 计时器来实现。但是只有第一次更新了,以后再没更新。是不是我需要刷新视图或者使用别的方法?

public class HomeActivity extends Activity implements OnClickListener {
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
        textTitle = (TextView) findViewById(R.id.textTitle);
        textArtist = (TextView) findViewById(R.id.textArtist);
        timedMeta();
}
static void timedMeta()
{
    timer.scheduleAtFixedRate(   
        new TimerTask() {
            public void run() {
                try{      
                    textTitle.setText(title);
                    textArtist.setText(artist); 
                    }
                Thread.sleep(UPDATE_INTERVAL);
                catch (Exception e) 
                { 
                },
                DELAY_INTERVAL,
                UPDATE_INTERVAL);
           }
       }
   )
}
  • 写回答

3条回答

  • O_Casper_ne 2013-03-14 08:32
    关注

    要使用一个 Handler.

    private static final int WHAT = 1;
    private static final int TIME_TO_WAIT = 5000;
    
    Handler regularHandler = new Handler(new Handler.Callback() {
        public boolean handleMessage(Message msg) {
            // Do stuff
    
            regularHandler.sendEmptyMessageDelayed(msg.what, TIME_TO_WAIT);
    
            return true;
        }
    });
    
    regularHandler.sendEmptyMessageDelayed(WHAT, TIME_TO_WAIT);
    

    onPause()

    regularHandler.removeMessages(WHAT)
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(2条)

报告相同问题?

悬赏问题

  • ¥15 请教一下各位,为什么我这个没有实现模拟点击
  • ¥15 执行 virtuoso 命令后,界面没有,cadence 启动不起来
  • ¥50 comfyui下连接animatediff节点生成视频质量非常差的原因
  • ¥20 有关区间dp的问题求解
  • ¥15 多电路系统共用电源的串扰问题
  • ¥15 slam rangenet++配置
  • ¥15 有没有研究水声通信方面的帮我改俩matlab代码
  • ¥15 ubuntu子系统密码忘记
  • ¥15 保护模式-系统加载-段寄存器
  • ¥15 电脑桌面设定一个区域禁止鼠标操作