我知道在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()可以做任何事情
答案 0 :(得分:0)
启动应用程序后等待多长时间?
您必须记住,您的应用可能需要一些时间才能开始。如果您说的是真的,那么您将无法看到Gdx调试 - 它仍然会在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()
代替。