繁体   English   中英

Libgdx Android:onCreate()之后未调用方法onStart()

[英]Libgdx Android: method onStart() not called after onCreate()

onStart()

我知道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()上触发。

所以我假设:

  • 您启动一个应用程序
  • 您不想等待,因此可以将其最小化
  • 您打开它,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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM