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



onStart((

我知道onStart((方法是在onCreate((之后调用的(通过活动生命周期文档(,但在我的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((结束,您会看到调试日志

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

与此同时,看看安卓应用程序的生命周期。安卓生命周期

在Libgdx应用程序有机会启动之前,您不能使用Gdx.app.debug()。我不确定这种情况是否发生在onStart()之前,因为libgdx不在UI线程上运行。此外,您还必须首先使用Gdx.app.setLogLevel(Application.LOG_DEBUG),否则对Gdx.app.debug()的调用将不会起任何作用。

但是你可以直接使用安卓的Log.d()

最新更新