Search code examples
javaandroidlibgdx

Libgdx Android: method onStart() not called after onCreate()


onStart()

I know that onStart() method is called after onCreate() ( via Activity Lifecycle documentation ), but in my LibGDX project this doesn't happen. I' ve this code:

@Override
protected void onStart()
{
    super.onStart();
    Gdx.app.debug(TAG, "onStart");
}

but the string in debug terminal appears only if I resume the app from background. I need to do stuff after the initialise of the activity, when it becomes visible.

EDIT: MORE CODE

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);
            }
        });
    }
}

This is what I do. But onStart() does anything


Solution

  • You can't use Gdx.app.debug() before the Libgdx application has had a chance to start up. I'm not positive if this happens before onStart() because libgdx doesn't run on the UI thread. Also, you must also use Gdx.app.setLogLevel(Application.LOG_DEBUG) first or calls to Gdx.app.debug() will do nothing.

    But you can just use Android's Log.d() instead.