模拟 Activity/Fragment 重新创建

Eli*_*eth 3 android android-lifecycle android-fragments android-activity

我正在尝试模拟ActivityFragment重新创建,并且还检查onSaveInstancestate()并且onRestoreInstanceState()通常检查我是否在所有情况下都以良好的方式处理活动重新创建,例如,就像屏幕旋转导致活动重新创建它时一样自己。

\n\n

但就我而言,我想检查更多可能导致重新创建的选项/案例,因为我的应用程序无法旋转(所有活动均为纵向)。

\n\n

我看到了很多关于这个主题的文章、博客和 stackoverflow 问题/答案,例如这里、 这里这里。

\n\n

正如这个 stackoverflow 答案所说,为什么不总是使用 android:configChanges="keyboardHidden|orientation" ?\n 还有更多的事件可能会导致活动重新创建,因此在我读完它之后,我想测试我的应用程序中的一些事件。

\n\n

例如,我在活动中按下主页按钮,然后进入设置并尝试更改语言、更改字体大小等...,但这些操作都没有使我的应用程序按照我的预期重新创建。\ n当我返回我的应用程序时,它只是恢复并onCreate()从未调用。\n所以我什至检查了有关此的官方文档。他们还说这应该导致我的活动重新创建:引用:

\n\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\n
android:configChanges="keyboardHidden|orientation|screenSize"\n
Run Code Online (Sandbox Code Playgroud)\n\n

那么一切都会好起来的,显然不是因为有更多的配置更改可以重新启动我的活动,所以我不能再运行它,我想以良好的方式处理它,现在我也想测试它。

\n

JHH*_*JHH 5

更改设备语言是强制重新创建不涉及方向更改的所有活动的一种方法。