我的应用程序包含允许选择目录的父活动,以及显示所选目录数据的“子”活动。
我开始我的“孩子”活动(这是Xamarin,但我不认为它有所作为):
var catalog = new Intent (this, typeof(CatalogActivity));
catalog.PutExtra ("CatalogId", cat.Id);
StartActivity (catalog);
我希望孩子的活动能够记住这个状态。因此,如果用户进入孩子,返回到父母,然后回到孩子,第二次事情是用户第一次离开时(请注意,如果用户关闭应用程序,状态将丢失,这没关系 - 我不是想解决这个问题。)
我是Android新手,不知道处理这种情况的正确方法是什么。我可以手动保存状态,但我真正期望的是告诉Android不要杀死活动对象并让我在将来调用它。
请指教。感谢。
答案 0 :(得分:1)
如果您希望将状态保留在导航流之外,则不要将其传递给具有意图的活动。在这种情况下,您可以使用表示状态的单例或静态类,在进行选择时设置状态,然后在子活动加载时读取状态。快速而肮脏的方法是在CatalogActivity上使用当前目录ID设置静态变量...这将比活动的单个实例的生命周期更长。或者,正如您在问题中提到的那样,如果您想在应用程序关闭后继续保留,则可以轻松地将此值读取和写入SharedPreferences。