我想在 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/