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()
。