[英]why does onStart() method run before onCreate in my android project?
[英]Libgdx Android: method onStart() not called after onCreate()
我知道onStart()方法是在onCreate()之后(通过Activity Lifecycle文档 )调用的,但是在我的LibGDX项目中不会发生这种情况。 我有以下代码:
@Override
protected void onStart()
{
super.onStart();
Gdx.app.debug(TAG, "onStart");
}
但是只有当我从后台恢复应用程序时,调试终端中的字符串才会出现。 活动初始化后,当它变得可见时,我需要做一些事情。
public class AndroidLauncher extends AndroidApplication {
private final static String TAG = AndroidLauncher.class.getSimpleName();
GoogleResolver googleResolver;
GoogleSignInAccount acct;
private Preferences googlePrefs;
@Override
protected void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
googleResolver = new GoogleResolverAndroid();
AndroidApplicationConfiguration config = new AndroidApplicationConfiguration();
config.useImmersiveMode = true;
config.useGyroscope = false;
config.useCompass = false;
config.useAccelerometer = false;
GoogleLoginHandler.getInstance().setContext(this.getContext());
GoogleLoginHandler.getInstance().startApiClient();
GameManager.getInstance().listener = googleResolver;
initialize(new MainCrucy(), config);
googlePrefs = Gdx.app.getPreferences(GOOGLE_PREF);
GoogleLoginHandler.getInstance().mGooglePrefs = Gdx.app.getPreferences(GOOGLE_PREF);
}
@Override
protected void onStart()
{
super.onStart();
Gdx.app.debug(TAG, "onStart");
OptionalPendingResult<GoogleSignInResult> opr = Auth.GoogleSignInApi.silentSignIn(GoogleLoginHandler.getInstance().getGoogleApiClient());
if (opr.isDone())
{
Gdx.app.debug(TAG, "Loggato");
GoogleSignInResult result = opr.get();
handleSignInResult(result);
} else {
opr.setResultCallback(new ResultCallback<GoogleSignInResult>() {
@Override
public void onResult(GoogleSignInResult googleSignInResult) {
handleSignInResult(googleSignInResult);
}
});
}
}
这就是我的工作。 但是onStart()可以做什么
启动应用程序后,您需要等待多长时间?
您必须记住,您的应用可能需要一些时间才能开始。 如果您说的是对的,那么您将看不到Gdx调试-它仍然会在onStart()上触发。
所以我假设:
顺便说一句,您可以显示更多代码吗?
同时查看Android应用程序的生命周期。 Android生命周期
Libgdx应用程序有机会启动之前,您不能使用Gdx.app.debug()
。 我不太肯定这是否发生在onStart()
之前,因为libgdx不在UI线程上运行。 另外,您还必须首先使用Gdx.app.setLogLevel(Application.LOG_DEBUG)
否则调用Gdx.app.debug()
将无济于事。
但是您可以只使用Android的Log.d()
。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.