在我的应用程序中,我保留了一个控制器类&这是一个单身人士班。我使用此类从第一个活动中获取数据,或者存储我的应用程序中剩余活动所需的一些信息。甚至有时我还需要从上一个活动访问第一个活动方法。这时,这个控制器会帮忙。
当用户按下主页按钮,如果用户按下主页按钮,并在某段时间后或在打开其他几个应用程序后恢复应用程序崩溃时,问题就出现了。
我知道这个问题是因为,活动引用不会存在于控制器中。因此,每当用户按下homebutton,我都可以保存所有这些实例。用户恢复后使用它吗?。
即使我在一个活动中有片段,这些参考也需要保存吗?
如何处理这些Senarios?,任何帮助
答案 0 :(得分:0)
因此,每当用户按下homebutton,我都可以保存所有这些实例& 用户恢复后使用它吗?。
按下主页时,不会删除“实例”。当应用程序处于后台时,它们会被删除,Android会在一段时间后需要更多内存(可能永远不会发生)。
将活动引用存储在savedinstancestate
中是否安全
是的,这是saved instance state was made for:
当您的活动开始停止时,系统会调用 onSaveInstanceState()因此您的活动可以保存状态信息 一组键值对。这个的默认实现 方法保存有关活动视图状态的信息 层次结构,例如EditText小部件中的文本或滚动 ListView的位置。
我可以保存所有这些实例吗?
您无法保存实例 - 您必须将用于重新构建活动的信息存储为键值对。我所做的是存储足够的信息,以便活动可以自行重建。
例如,如果Activity有一个从api.myapp.com构建的列表,我将保存此URL以及列表的滚动位置。其余的你应该再次检索,就像你刚刚第一次启动应用程序一样 - 这将使你的代码更简单。