onRetainNonConfigurationInstance
全部标签 我有一个应用程序可能会在单个玩家使用应用程序期间跟踪大量数据,我的应用程序一次最多允许5个玩家,这意味着这些大量数据可能会增加5倍。当Activity被销毁时,我将所有数据写入我的SQLite数据库,这工作正常。问题发生在方向改变期间。我使用onRetainNonConfigurationInstance是因为我认为我至少可以依靠它来进行方向更改,但我发现Android中发生的其他事情可能会清除我的数据。用户报告的一些例子:-Whiletheappwasrunning,theusertookaphonecall.Afterreturningtotheapp,thedatawasgone
据我所知,您的AndroidActivity将在任何方向更改时针对新方向重新创建。有没有办法在方向改变时存储/保存原始方向的一些数据?我想存储一些位图,这样我就不必在方向改变时再次加载它。 最佳答案 就可维护性和调试而言,使用静态变量/类是一种糟糕的方法。我一直在使用Activity.onRetainNonConfigurationInstance但我刚刚发现它已被弃用(可能从honeycomb或更高版本开始)。Activity.onRetainNonConfigurationInstance使用此方法,只需调用Activity.g
在处理AsyncTask和屏幕旋转时,我仍在努力寻找“正确”的设计模式。我阅读了链接到thiscommonswareblogpost的thiscode,但现在不推荐使用onRetainNonConfigurationInstance方法。文档中的神奇句子指出“在切换到下一个Activity期间不处理消息的保证简化了Activity对象的使用......”这是关于此方法所做的真正关键部分。我看不到它关于使用setRetainInstance()能够实现相同目标的建议。我还看到了suchasthisone的帖子,其排名第一的答案实际上就是一个糟糕的黑客攻击,它只涵盖了90%的用例(即,如果
在我的类View中,手机摄像头将打开,程序会在用户从手机摄像头拍摄照片后显示位图,但同时用户将屏幕旋转到“横向”位图将消失,Activity的oncreate()将再次加载并且然后相机将再次打开。我不知道用onRetainNonConfigurationInstance()或onSaveInstanceState()保存位图。问题是我如何在用户旋转手机之前保存位图(从手机摄像头中获取),这样即使手机处于横向模式,屏幕上也会显示相同的位图?---编辑---添加到AndroidManifest.xml是获取保存状态的好方法吗? 最佳答案
在我的应用程序中,我希望播放一个媒体文件,并在用户旋转屏幕(破坏Activity)时继续播放,但如果用户移动到另一个Activity或出现另一个Activity,我希望它停止播放在这个上面,他们按了后退按钮,无论如何。我相信Honeycomb中有一个API,但我需要一些可以在Android2.2中运行的东西。我不想自己使用onConfigurationChanged来处理所有配置更改——这听起来像是很多工作和潜在的错误——而onRetainNonConfigurationInstance()的问题是它在onStop触发后才会运行——-但如果合适的话,onPause将是暂停媒体的合乎逻辑
我为Android编程已经有一段时间了,我仍在寻找解决方案来保留配置更改的数据。除了在onSaveInstanceState文档中将Parcelable保存到Activity的Bundle之外,还建议使用Fragment和setRetainInstance标志设置为true。但我刚刚遇到了一些使用onRetainCustomNonConfigurationInstance来保存任意对象的代码(以一种奇特的方式,但本质上是没有引用Activity等的大对象).没见过用过这种方法,所以有些疑惑:调用此方法来存储任意对象是否安全(从某种意义上说,我可以肯定它会被调用,并且不会很快被弃用/删除
我为Android编程已经有一段时间了,我仍在寻找解决方案来保留配置更改的数据。除了在onSaveInstanceState文档中将Parcelable保存到Activity的Bundle之外,还建议使用Fragment和setRetainInstance标志设置为true。但我刚刚遇到了一些使用onRetainCustomNonConfigurationInstance来保存任意对象的代码(以一种奇特的方式,但本质上是没有引用Activity等的大对象).没见过用过这种方法,所以有些疑惑:调用此方法来存储任意对象是否安全(从某种意义上说,我可以肯定它会被调用,并且不会很快被弃用/删除
据我所知,onRetainNonConfigurationInstance是一个冗余回调。如果我的Activity有非常昂贵的初始化,我最好使用onSaveInstanceState。保存的实例比非配置实例覆盖更多的情况。是否有使用一种API与另一种API的指南?谢谢。 最佳答案 AsfarasIcanseeonRetainNonConfigurationInstanceisaredundantcallback.不,不是。Ifmyactivityhasreallyexpensiveinitialization,Iambetterof
据我所知,onRetainNonConfigurationInstance是一个冗余回调。如果我的Activity有非常昂贵的初始化,我最好使用onSaveInstanceState。保存的实例比非配置实例覆盖更多的情况。是否有使用一种API与另一种API的指南?谢谢。 最佳答案 AsfarasIcanseeonRetainNonConfigurationInstanceisaredundantcallback.不,不是。Ifmyactivityhasreallyexpensiveinitialization,Iambetterof
如何在方向改变时保存对象,因为onRetainNonConfigurationInstance和getLastNonConfigurationInstance已弃用。我不能与compatibilitypackageandroid-support-v4.jarFragmentActivity一起使用,它显示CannotoverridethefinalmethodfromfragmentActivity开发者网站说UsethenewFragmentAPIsetRetainInstance(boolean)instead;但我不知道如何使用setRetainInstance保存自定义对象我的