如何在方法在droid结束之前刷新屏幕?

问题描述:

如果我将一个ImageView的来源更改为另一个(并因此更改图像),但是在方法等内部会发生更多更改。如何强制刷新以在方法结束之前显示更改? (由于等待方法结束以显示改变的图像对我来说根本不好)如何在方法在droid结束之前刷新屏幕?

There's a Very Similar question that has an excellent answer (and a link to another similar question) right here

基本上,除非您自己创建线程,否则您正在UI线程中运行。无效/睡眠只是暂停渲染/输入/等。您的redraw()仅在当前函数退出后才在UI线程中调用。您想分开这两个,或使用较低级别的技术(分别在另一个线程中为postInvalid(),或分别为SurfaceView w/repaint())。

+0

嗯我仍然有点困惑,虽然我觉得我正在接近这个整个项目的方式是错误的 - 一个线程是Java类,得到的启动正确吗?我有一个巨大的playscreen.java,当从另一个屏幕按下播放按钮时启动。这包含用户界面和“游戏引擎”所以,如果我需要刷新..我需要把我的“游戏引擎”扔在另一个类中..也可以在用户界面启动时启动并在需要的地方安装postInvalid()在每个图像或文字改变?还有什么会在postInvalid之前,我将如何启动这两个从开始 – 2010-10-27 18:31:42

+0

这听起来像你的“游戏引擎”在UI线程上运行。这是非常非常糟糕的 – Falmarri 2010-10-27 18:38:40

+0

所以我的游戏引擎应该在不同的Java类?但是,如何让UI和游戏引擎类同时运行? – 2010-10-27 19:04:19