我有一个列表视图,我已经设法从gps中保存了我当前的坐标(就像一个按钮,上面写着添加当前位置或其他内容)
ArrayList<HashMap<String, String>> list = new ArrayList<HashMap<String, String>>();
我正在尝试保存此列表,以便在我启动应用程序后可以使用它。我尝试过所有不同的事情,比如
@Override protected void onSaveInstanceState(Bundle savedInstanceState) {
// TODO Auto-generated method stub
savedInstanceState.putSerializable("savedLocations", list);
super.onSaveInstanceState(savedInstanceState);
}
然后
if (savedInstanceState != null) {
list = (ArrayList<HashMap<String,String>>) savedInstanceState.getSerializable("savedLocations");
}
从onCreate()开始,但savedInstanceState始终为null,在我点击后退按钮并关闭应用程序后,它从不加载列表。关于如何实现这一目标的任何想法?
我知道只有在应用程序退出后才会调用onSaveInstanceState,例如单击主页按钮并导航到另一个应用程序。
答案 0 :(得分:0)
onSavedInstance状态仅用于在活动暂停和恢复之间存储状态。例如设备旋转。 如果活动结束(例如,当你退出应用程序时),数据就会丢失。
要永久存储数据,您可以使用共享首选项或数据库。
共享首选项实际上仅针对单个值设计,通常是用户选择的设置或首选项。
您需要使用数据库来保存数据。第一次使用数据库可能有点令人生畏。
我建议使用名为ActiveAndroid的库。它抽象了很多东西,并且有很好的api。它使用起来非常简单。
您需要将数据保存在数据库中。