本文是The life cycle的译文
LibGDX具有明确的生命周期,用于管理应用程序的状态,如创建、暂停、恢复、渲染和销毁应用程序。
ApplicationListener
应用程序开发人员通过实现ApplicationListener接口并将该实现的实例传递到特定的后端Application实现(平台特定代码)从而掌控应用程序的生命周期事件。从此之后,应用程序将在每次发生应用程序级事件时调用ApplicationListener,一个基础的ApplicationListener可能如下所示:
public class MyGame implements ApplicationListener {
public void create () {
}
public void render () {
}
public void resize (int width, int height) {
}
public void pause () {
}
public void resume () {
}
public void dispose () {
}
}
如果我们仅仅关心一些其他重要的方法,那么我们也可以直接从ApplicationAdapter中派生.
一旦ApplicationListener被传递给应用程序,ApplicationListener方法将被调用如下:
方法签名 | 描述 |
---|---|
create () | 当Application被创建时立即被调用 |
resize(int width, int height) | 当游戏处于渲染状态并且游戏画面被重新调整大小,就会调用此方法。当然,在create()方法之后也会被调用一次。参数是屏幕已调整大小的新宽度和新高度(以像素为单位) |
render () | 每次渲染应该由应用程序通过游戏循环调用的方法。 游戏逻辑更新通常也在此方法中执行。 |
pause () | 在Android应用上,该方法是将在Home被按下或者有来电时运行,如果是桌面应用,那么它将在dispose() 方法前执行,该方式是保存游戏数据的好地方. |
resume () | 该方法仅在Android应用上起作用,当应用程序从Pause状态转Resume状态 |
dispose () | 当应用程序被销毁时调用,在此之前pause () 会先执行. |
生命周期的的 视图:
生命周期(官网)
主循环在哪?
显式的主循环不存在,这主要是由于Android和JavaScript的工作原理,但是ApplicationListener.render()方法可以被看作是这样一个主循环的主体。