2014-05-15 36 views
0

在我的Android游戏中有一个街机模式,其运行时间为60秒。游戏屏幕由一个游戏板组成,其中包括一个在视图上绘制的6x6矩阵的彩色圆圈。有一个计时器和记分牌来记录时间和分数。 Timer基本上是一个单独的线程,休眠60秒,每秒更新一个连接到UI线程的处理程序。只要剩下的时间变为零,游戏就会转到另一个显示玩家当前得分和过去得分的活动。如果玩家按下返回键,则之前的活动(游戏屏幕)变得可见,但是记分板未被重置,但矩阵重新绘制。所有的编码都在onCreate()方法或为游戏创建的新方法。 onPause()onResume()方法中没有代码。那么为什么表面视图被重新创建和重绘?我不认为按回运行键onCreate()方法。与活动生命周期相关的问题

+0

将游戏重置逻辑移至'onResume'。每当您的游戏画面变为活动状态时,都会调用它。 – dharms

+0

如果玩家接到电话,是否会重置游戏? – user3293494

+0

是的,我想这是事实。调用startActivity之后如何运行重置逻辑?这样当你回来时它处于重置状态。或者,您可以为onResume设置一个标志来检查是否应该重置。 – dharms

回答

0

如果您明确致电finish(),您的第一个活动将被销毁。

即使您不这样做,您的活动在完全模糊之后的任何时候都会被销毁。

因此,假定onCreate()不会被调用是错误的。

+0

那么当按下返回键时会发生什么? onCreate()方法被调用? – user3293494

+0

当您的活动被其他一些活动完全遮蔽时,操作系统可能会在她在后台时杀死她。 因此,可以调用onResume或onCreate(然后onResume)。 –

+0

首先,如果正在调用'onCreate()',那么记分板为什么不重置? secondaly,我第二次活动变得可见后立即按下按钮,所以我不认为旧的活动很快就会被操作系统杀死。 – user3293494