gpt4 book ai didi

java - onSizeChanged() 调用 onCreate() 和 onStart()? - 安卓

转载 作者:行者123 更新时间:2023-12-01 14:37:49 29 4
gpt4 key购买 nike

我的应用程序当前调用 onCreate() 方法中的一个方法,以便在创建 View 后游戏将启动并运行动画。但是,当我翻转屏幕以在纵向和横向之间切换时,会再次调用此方法。

我已将调用行移至 onStart() 方法,甚至方法类构造函数。

这是正在调用的方法:

public void startGame() {
Handler handler = new Handler();
handler.postDelayed(new Runnable() {

public void run() {
runGame();
}
}, 500);
}

在运行之前有一个延迟,允许所有内容构建完毕,否则它将无法工作。

有没有办法阻止 onSizeChanged() 影响调用此方法?或者有没有一种方法可以调用此方法,以便它在 Activity 启动时启动(同样,onSizeChanged() 不会影响它,并且所有内容都在调用之前初始化)。

感谢您的浏览。

最佳答案

最简单的方法是添加:

android:configChanges="orientation|screenSize"

这告诉系统你将自己处理它们。 However, it's not recommended.

Note: Using this attribute should be avoided and used only as a last-resort. Please read Handling Runtime Changes for more information about how to properly handle a restart due to a configuration change.

或者您可以检查savedInstanceState。如果它不为空,则意味着用户更改了方向(或者应用程序从配置更改中恢复)。也许是这样的:

if(savedInstanceState == null)
startGame();
else
//handle a configuration change if necessary

请参阅Don't reload application when orientation changes

编辑:

if(savedInstanceState == null) {
startGame();
} else {
//handle a configuration change if necessary
int yourVar = savedInstanceState.getInt("something");
}

关于java - onSizeChanged() 调用 onCreate() 和 onStart()? - 安卓,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16317816/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com