当前位置: 首页 > 知识库问答 >
问题:

在android中处理运行时方向变化

壤驷志学
2023-03-14

我如何在配置更改时保留这个列表?我已经寻找了许多解决方案,但许多人建议在manifest中使用'Android:ConfigChanges',我完全反对使用。许多人建议,我也读到过--在Fragment中使用setRetaInstance(true)来保留这个片段。

我尝试实现它,但我失败了。许多教程在方向改变后使用findFragmentByTag检查片段,但在我的情况下,它总是返回null。有人可以发布正确的教程或正确的答案如何使用保留片段吗?

我还调用AsyncTask在片断中加载onActivityCreated方法中的list。根据android文档,当使用setRetaInstance(true)时,不会调用onCreate(Bundle)因为片断不会被重新创建。仍将调用onAttach(Activity)和onActivityCreated(Bundle)。

那么我应该在onCreate方法中调用AsyncTask吗?

共有1个答案

岑炯
2023-03-14

我不确定你是否还记得:

注意:每次用户旋转屏幕时,您的活动将被破坏并重新创建。当屏幕改变方向时,系统会破坏并重新创建前台活动,因为屏幕配置已经改变,并且您的活动可能需要加载其他资源(如布局)。

我强烈推荐您这篇文章:
使用片断处理配置更改
http://www.androiddesignpatterns.com/2013/04/registing-objects-across-config-changes.html

 类似资料:
  • 假设这里已经说过,开发人员有责任保留组件实例以实现他们自己的作用域逻辑(因为作用域方法将为给定组件返回相同的实例)。 在整个活动生命周期中保持此组件引用的干净方法是什么? 示例:您正在实现MVP模式,因此您的活动中需要一个演示者。此演示者可以执行网络操作以下载项目。当设备旋转时,您的活动将被销毁并重新创建,但您希望继续网络操作,只需返回旋转前的演示者即可。 为演示者提供自定义PerActivity

  • 我正在开发一个应用程序来显示一个频道的直播流,它在默认情况下以景观模式启动,我可以从我的选项菜单中将它改为肖像,反之亦然 现在我在manifest中使用这段代码,并将其放在活动android:configchanges=“keyboardkeyboardhiddenorientationscreensize” 当我启动应用程序,它的工作很好,但当我改变方向为肖像,应用程序是悬挂和选项菜单没有消失,

  • 我完全知道Swift没有一个try/catch机制来捕捉异常(好的,Swift2.0现在支持它们)。我还了解到,许多API方法返回一个NSError,如果出现问题,该NSError将被一个错误对象填充。所以请不要向我提出这个问题:Swift语言中的错误处理 但这仍然不能解释如何对您自己代码中的运行时错误做出反应,比如数组越界访问或强制展开一个为nil的可选值。例如: 或 每个程序员都会偶尔犯这样的

  • 我有一份刚起步的工作。我希望在应用程序的特定点以编程方式运行此作业,而不是在启动应用程序时。 当在启动时运行时,我没有问题,但是当我尝试以编程方式运行它时,我得到了一个“NoSuchJobException”(

  • 我正在学习spring batch,并试图理解在异常期间项目处理器是如何工作的。 我试图通过在我的项目处理器中为一条记录手动抛出异常来模拟异常 现在根据跳过限制,当异常被抛出时,项目处理器将重新处理块并跳过抛出错误的项目,项目写入也将所有记录插入数据库,除了一条异常记录。 这一切都很好,因为我的处理器,它只是转换为大写字母名称,它可以运行很多次,但影响很大。 其他的选择是什么?