对于我的Android应用程序,有一个计时器可以测量已经过了多长时间.在100毫秒内,我用一些文本更新了我的TextView,例如"得分:10时间:100.10秒".但是,我发现TextView仅在前几次更新.该应用程序仍然非常敏感,但标签不会更新.我试图调用.invalidate(),但它仍然无效.我不知道是否有某种方法可以解决这个问题,或者使用更好的小部件.
以下是我的代码示例:
float seconds; java.util.Timer gametimer; void updatecount() { TextView t = (TextView)findViewById(R.id.topscore); t.setText("Score: 10 - Time: "+seconds+" seconds"); t.postInvalidate(); } public void onCreate(Bundle sis) { ... Load the UI, etc... gametimer.schedule(new TimerTask() { public void run() { seconds+=0.1; updatecount(); } }, 100, 100); }
Ben Bederson.. 19
一般的解决方案是使用android.os.Handler而不是在UI线程中运行.它只进行一次性回调,因此每次调用回调时都必须再次触发它.但它很容易使用.几年前写了一篇关于这个主题的博客文章:
http://android-developers.blogspot.com/2007/11/stitch-in-time.html
一般的解决方案是使用android.os.Handler而不是在UI线程中运行.它只进行一次性回调,因此每次调用回调时都必须再次触发它.但它很容易使用.几年前写了一篇关于这个主题的博客文章:
http://android-developers.blogspot.com/2007/11/stitch-in-time.html