首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 移动开发 > Android >

一个invalidate的有关问题

2012-03-23 
一个invalidate的问题nvalidate()得在UI线程中被调动,在工作者线程中可以通过Handler来通知UI线程进行界面

一个invalidate的问题
nvalidate()得在UI线程中被调动,在工作者线程中可以通过Handler来通知UI线程进行界面更新。
postInvalidate()在工作者线程中被调用。

我在看有的五子棋源码的时候,里面有以下一段

Java code
public boolean onTouchEvent(MotionEvent event) {        if (event.getAction() == MotionEvent.ACTION_DOWN) {            switch (mGameState) {            case GAMESTATE_PRE:                。。。            case GAMESTATE_RUN: {                。。。                break;            case GAMESTATE_PAUSE:                                。。。                break;            case GAMESTATE_END:                                。。。                break;            }            this.invalidate();        }        return true;    }


这样写是不是不合法,虽然能运行。应该搞一个Handler,在Handler里面invalidate的吧

[解决办法]
其实你的UI更新完全可以是在点击游戏屏幕时进行更新,所以不需要做什么都要UI更新,你要invalidate()无非也就是重绘棋盘和棋子.
[解决办法]
怎么看还是在ui线程呢
[解决办法]
我觉得合法,因为按键事件和触屏事件都是在UI线程中触发的。
[解决办法]
同意楼上
[解决办法]
有啥不合法的,能运行就是合法。。。
[解决办法]
这是个自定义view吧

热点排行