【问题标题】:Libgdx Android: method onStart() not called after onCreate()Libgdx Android:onCreate() 后未调用方法 onStart()
【发布时间】:2016-09-23 19:49:41
【问题描述】:

onStart()

我知道 onStart() 方法是在 onCreate() 之后调用的(通过 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() 什么都做

【问题讨论】:

    标签: java android libgdx


    【解决方案1】:

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

    您必须记住,您的应用可能需要一些时间才能启动。如果你说的是真的,那么你不会看到 Gdx 调试 - 它仍然会在 onStart() 处触发。

    所以我假设:

    • 您启动了一个应用程序
    • 您不想等待,所以将其最小化
    • 你打开它,onStart() 结束,你会看到调试日志

    顺便说一下,你能显示更多代码吗?

    同时看看 Android 应用的生命周期。 Android lifecycle

    【讨论】:

    • 用更多代码编辑的问题。当我启动应用程序时,应在 onCreate() 之后调用 onStart() 方法。所以一开始我应该在 onStart 方法中看到 gdx 调试。对吗?
    • 首先你应该在onStart()中放置断点。
    • 并尝试正确调试它。其次,尝试设置调试级别 Gdx.app.setLogLevel(Application.LOG_DEBUG);三、先尝试用Java system.out调试。
    【解决方案2】:

    在 Libgdx 应用程序有机会启动之前,您不能使用 Gdx.app.debug()。如果这发生在onStart() 之前,我不肯定,因为 libgdx 不在 UI 线程上运行。此外,您还必须先使用Gdx.app.setLogLevel(Application.LOG_DEBUG),否则调用Gdx.app.debug() 将无济于事。

    但您可以改用 Android 的 Log.d()

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-04-12
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2010-11-14
      相关资源
      最近更新 更多