Libgdx Android:在onCreate()之后没有调用onStart()方法

时间:2016-09-22 16:33:23

标签: java android libgdx

在onStart()

我知道在onCreate()之后调用onStart()方法(通过Activity Lifecycle documentation),但在我的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()可以做任何事情

2 个答案:

答案 0 :(得分:0)

启动应用程序后等待多长时间?

您必须记住,您的应用可能需要一些时间才能开始。如果您说的是真的,那么您将无法看到Gdx调试 - 它仍然会在onStart()上激发。

所以我假设:

  • 你启动了一个应用
  • 你不想等到最小化
  • 你打开它,onStart()结束,你看到调试日志

顺便问一下,你能展示更多代码吗?

在此期间,请查看Android应用的生命周期。 Android lifecycle

答案 1 :(得分:-1)

在Libgdx应用程序有机会启动之前,您无法使用Gdx.app.debug()。如果在onStart()之前发生这种情况,我不肯定,因为libgdx不在UI线程上运行。此外,您还必须先使用Gdx.app.setLogLevel(Application.LOG_DEBUG),否则拨打Gdx.app.debug()将不会执行任何操作。

但您可以使用Android的Log.d()代替。