gpt4 book ai didi

Android 应用程序在方向更改时重置,最佳处理方式?

转载 作者:塔克拉玛干 更新时间:2023-11-02 23:39:03 27 4
gpt4 key购买 nike

所以我正在制作一个基本的国际象棋应用程序来玩转 android 编程的一些不同元素,到目前为止我学到了很多东西,但这次我迷路了。

当模拟器的方向改变时, Activity 被重置。根据我的研究,只要应用程序暂停/中断,同样的事情就会发生,即。换键盘、打电话、敲home键等

显然,不断重置棋局是不可行的,所以我再次发现自己需要学习如何解决这个问题。

我的研究提出了几个主要问题,覆盖我的 Activity 中的 onPaused 方法、监听方向、 list 中的键盘更改(通过 android:configChanges)、使用 Parcelables 或序列化。

我查了很多使用Pacelables的示例代码,但是老实说太乱了。也许明天以全新的眼光回来会有所帮助,但现在我对 Parcelables 的了解越多,它就越没有意义。

我的应用程序使用了一个 Board 对象,它有 64 个 Cell 对象(在一个 8x8 二维数组中),每个单元格都有一个 Piece 对象,如果空间为空,则为实际的 piece 或 null。假设我使用 Parcelable 或 Serialization,我假设我必须对每个类、Board、Cell 和 Piece 进行 Parcelize 或序列化。

首先,Parcelable 或 Serialization 是否适合解决此问题?如果是这样,那么首选 Parcelable 或 Serializable 吗?我是否正确地假设这三个对象中的每一个都必须被打包/序列化?最后,有人有指向简单易懂的 Parcelable 教程的链接吗?任何可以帮助我理解并在我的应用程序进一步扩展时停止进一步头痛的东西。

如有任何帮助,我们将不胜感激。

最佳答案

标签中的 list 中,您可以添加 android:configChanges="orientation|keyboardHidden",这将停止 Activity 重新加载并在方向更改或键盘隐藏时调用 onConfigurationChanged()。

如果您需要在这些事件发生时进行调整,您可以在您的 Activity 中覆盖 onConfigurationChanged(),如果您不需要做的只是将属性添加到 list 中。

类似于:

@Override
public void onConfigurationChanged(Configuration newConfig) {
super.onConfigurationChanged(newConfig);
setContentView(R.layout.myLayout);
}

运行良好。

关于Android 应用程序在方向更改时重置,最佳处理方式?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2774645/

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