【发布时间】:2016-12-28 02:07:10
【问题描述】:
我要重新问这个问题,因为那里有太多不好的信息,这真的令人沮丧。简短的故事是,当设备方向发生变化时,我不希望任何事情发生变化或发生。针对这个问题给出的两个最流行的“解决方案”是:
1.您可以通过在清单中添加android:screenOrientation="portrait"(或“landscape”)来将活动锁定在一个方向。
2.您可以通过在标签中指定 android:configChanges="screenOrientation" 来告诉系统您打算自己处理屏幕更改。这样,Activity 将不会被重新创建,而是会收到一个回调(您可以忽略它,因为它对您没有用处)。
这些都不起作用。所以让我更详细地解释我的特殊问题......
我正在尝试一个非常简单的应用程序作为学习练习。我在服务器上有一个文本文件。文本文件中有 1 件事:单行上的单个整数。这个数字是同时存储在这个服务器上的图像文件的数量,并且图像都被命名为0.jpg、1.jpg、2.jpg等。
我的所有代码都在我的活动的 onCreate 方法中(就像我说它是一个简单的应用程序)。
应用程序在运行时会执行以下操作:
从文本文件中读取数字。 生成一个从零到文件中数字的随机数。 使用 URL 中的随机数将随机图像加载到 imageview 中。
当屏幕旋转时,我不希望这一切再次发生。我只是不想发生任何事情......除了屏幕应该明显旋转并且图像应该缩放以适应,它确实如此。但每次屏幕旋转时,所有代码都会运行并选择一个新的随机图像。有人可以给我一个简单的解决方案和工作代码来解决这个问题吗?我通过看到来学习,所以如果您不能提供代码示例,它将无济于事。
提前致谢。
ps...我不是在寻找一种不同的方式来做我正在做的事情,这不是重点。我希望按照我目前的方式进行修复。
【问题讨论】:
-
啊,你的代码一定有问题:
android:configChanges="screenOrientation"是处理你想做的事情的方法。如果您配置正确,您的onCreate将不会重新运行。如果它重新运行,那么你配置错误。将您的代码放在问题的正文中,我猜答案应该很简单。 -
hhmmm... 你在说什么配置错误?如果你说我要做的唯一一件事就是将那一行添加到我的清单中,我怎么会做错呢?
-
这就是我不确定的地方,也是我要求查看您的代码的原因。我的工作代码不会在您每次更改方向时触发
onCreate()。 -
是什么参数?
android:configChanges="orientation"或android:configChanges="screenOrientation"?
标签: android