java - 如何在 android 上执行连续检查另一个类的返回值?

标签 java android libgdx

我想在 Android 线程中执行检查,以检查另一个类中方法的返回值。这是到目前为止我的代码:

public class HelloWorldAndroid extends AndroidApplication {

    private MyGame myGame;

@Override
public void onCreate (Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);

            **********Other lines Omitted***********

    myGame = new MyGame(false, 30, new AndroidLeaderboard());


            //check to see if the game is over
    Thread background = new Thread(new Runnable() {

        @Override
        public void run() {
            if (myGame.gameOver()) {


                //if the game is over go to another screen
                startActivity(new Intent(HelloWorldAndroid.this, MainActivity.class));

            }
        }

    });
            background.start();
      }

我尝试使用处理程序来实现此功能,但它只是不执行检查,因此当值为 true 时它仍然会运行。有谁知道我如何在该线程的运行过程中连续执行检查 myGame.gameOver() = true (这样我就可以继续进行不同的 Activity )。

我在这个问题上绞尽脑汁好几天了,但还是一无所获:S 欢迎任何想法。

最佳答案

为什么不创建某种监听器(接口(interface))?

小而基本的例子,

myGame = new MyGame(false, 30, new AndroidLeaderboard());
myGame.setGameOverListener(this);

注意:您不需要 setGameOverListener 方法,您还可以更改构造函数以具有监听器参数。

监听器看起来像这样:

interface GameOverListener {
    abstract public void notifyGameOver();
}

并在 MyGame 对象中创建一个方法:

setGameOverListener(GameOverListener gol){
    this.gol = gol;
}

您的 Activity 将实现该监听器,并在 notifyGameOver() 方法中打开该 Activity。

像这样:

public void notifyGameOver(){
    startActivity(new Intent(HelloWorldAndroid.this, MainActivity.class));
}

要通知游戏结束,只需让 MyGame 对象调用 notifyGameOver() 方法即可:

gol.notifyGameOver();

关于java - 如何在 android 上执行连续检查另一个类的返回值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12941654/

相关文章:

java - 如何在 Lucene 中将 FS 目录索引文件加载为 RAM 目录?

java - hibernate :双向与单向,取决于关系

java - 为什么我在 Java 中的合并排序实现出错?

android - HttpURLConnection.setConnectTimeout 不工作

android - 在 Android 自定义 ListView 中设置字体

java - isTouched 和 justTouched 之间的区别

java - 不使用AOP拦截带注释的方法调用

java - 如何在 java 中正确执行二进制 switch 语句?

java - 我不明白一些 libgdx 编译错误

java - libgdx 在相机的某个 X 坐标处渲染平铺贴图