标题非常明显.我理解这个开发人员选项的作用.
我不明白的是以下几点:
我很想知道这个选项背后的原因.
我想测试一下onSaveInstanceState
和onRestoreInstanceState
我在模拟器应用程序.
我发现了这个,它说我们可以在方向更改期间模拟这个,但是我将一些变量存储在应用程序级别(子类android.app.Application
)中,因此方向更改不会消除变量.
所以我的问题是,我如何模拟低内存情况,从而杀死我的活动?
希望我已经清楚了.谢谢
我正在尝试模拟Activity
和Fragment
重新创建,并且还检查onSaveInstancestate()
并且onRestoreInstanceState()
通常检查我是否在所有情况下都以良好的方式处理活动重新创建,例如,就像屏幕旋转导致活动重新创建它时一样自己。
但就我而言,我想检查更多可能导致重新创建的选项/案例,因为我的应用程序无法旋转(所有活动均为纵向)。
\n\n我看到了很多关于这个主题的文章、博客和 stackoverflow 问题/答案,例如这里、 这里和这里。
\n\n正如这个 stackoverflow 答案所说,为什么不总是使用 android:configChanges="keyboardHidden|orientation" ?\n 还有更多的事件可能会导致活动重新创建,因此在我读完它之后,我想测试我的应用程序中的一些事件。
\n\n例如,我在活动中按下主页按钮,然后进入设置并尝试更改语言、更改字体大小等...,但这些操作都没有使我的应用程序按照我的预期重新创建。\ n当我返回我的应用程序时,它只是恢复并onCreate()
从未调用。\n所以我什至检查了有关此的官方文档。他们还说这应该导致我的活动重新创建:引用:
"When a configuration change occurs at runtime, the activity is shut down and restarted by default" \n
Run Code Online (Sandbox Code Playgroud)\n\n但正如我所说,这并没有发生在我身上。
\n\n这对我来说很重要,因为我非常 na\xc3\xafve 并认为如果我的应用程序仅以纵向显示或者我是否将这一行添加到清单中:
\n\nandroid:configChanges="keyboardHidden|orientation|screenSize"\n
Run Code Online (Sandbox Code Playgroud)\n\n那么一切都会好起来的,显然不是因为有更多的配置更改可以重新启动我的活动,所以我不能再运行它,我想以良好的方式处理它,现在我也想测试它。
\nandroid android-lifecycle android-fragments android-activity
android ×3