android - 变量是否保留方向变化的值?

标签 android

我知道当您将设备从横向更改为纵向时,反之亦然,onCreate方法被调用。这对我来说是一些问题的原因。

假设我有一个数据库,其中包含要执行的下载。我计划制作一个闪屏,其中 DAO 对象会将此数据转换为对象并将它们放入 Vector<DownloadTask> 中。 .这将发生在 AsyncTask 上的 doInBackground() .
onPostExecute初始屏幕将启动一个新的 Activity .

到目前为止一切都很好,除非我必须处理方向变化。
启动画面后的新 Acitivity 将启动一个 Timer负责安排下载。这将在 onCreate 开始. DownloadTask所有工具Runnable所以他们是线程。

当下载结束或突然停止时,线程应该将此告知调度程序并减少同时运行的线程数。这是为了限制同时下载的数量。

因此,如果时间正确(或错误),方向改变和线程的完成对齐在一起,Timer 会发生什么情况?它会是 null 吗?

当方向改变时,变量是否重置为其默认值?
另外,如何防止方向改变?就像一些游戏一样

最佳答案

When orientation changes, are the variables reset to their default value ?

如果它们是 Activity level 变量然后是的,它们将返回自 Activity 以来的默认值每次都被销毁并重新创建。为避免这种情况,您可以将变量保存在 finish() 中。每次但这可能会很困惑,因为您不知道何时会发生这种情况(但有办法解决)。您还可以在 manifest.xml 中指定您将通过添加

来处理这些更改
android:configChanges="orientation" 

到您的<activity> manifest 中的标签.在文档中,他们不推荐这样做,但我认为主要是为了掩盖他们的屁股。我这样做了,到目前为止还没有遇到任何问题。这将保留 Activity从被摧毁。

Also, how do I prevent orientation change ??

您也可以在 manifest 中执行此操作通过添加类似的东西

android:screenOrientation="portrait"

<activity>那些 Activities 的标签你希望拥有某种 orientation .

关于android - 变量是否保留方向变化的值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18264380/

相关文章:

java - 实现多项 Activity 的最佳方式是什么?

android - 拍照,然后将图片放在 ImageView 上。试图让它全屏,但我无法弄清楚。

java - Toast.makeText 在 Android Studio 上只出现一次

java - 为什么Java中有些方法不需要创建实例就可以使用?

android - 滑动 ViewPager 时播放声音

java - 使用 MapBox 生成两个位置的路线和方向

android - 应用程序启动后选择默认选项卡

java - 抽屉导航 Activity : passing values between fragment

android - 为什么 android xml 文件名必须只包含小写字母和数字 ([a-z0-9_.])?

java - 如何创建一个 ListView ,以便单击每个列表项将打开不同的 Activity ?