读书人

一个invalidate的有关问题

发布时间: 2012-03-23 12:06:21 作者: rapoo

一个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吧

读书人网 >Android

热点推荐