如何跨会话保存ListView数据?

时间:2013-02-16 07:45:55

标签: android sqlite android-listview

INTRO:

冒着关闭问题的风险,无论如何我都会尝试提问。我做了很多搜索,但大多数是关于在方向更改期间保存ListView状态并在返回Activity时恢复。这不是我想要的。

Twitter应用程序和其他类似应用程序等应用程序将恢复到您上次使用该应用程序时的状态。当您返回应用程序时,任何新数据(如果可用)都会加载到当前位置之上。

在我目前的设置中,我使用了三个类。

  1. public class NewNotifications extends SherlockFragment {....} // THE FRAGMENT WHERE THE DATA IS PROCESSED
  2. public class NewNotificationsAdapter extends BaseAdapter {....} // THE ADAPTER FOR THE CUSTOM LISTVIEW
  3. public class NotificationsData {} // A HELPER SETTER / GETTER CLASS
  4. 目前显示的所有数据都是使用Facebook SDK实时获取的,一切正常。但我担心发生的巨大数据使用情况。例如,上述三个类一起工作以显示当前登录用户的任何新/旧通知。但每次用户单击通知按钮时,无论是否为新通知,都会重新获取相同的数据。这让我想到了主要问题。

    问题:

    主要问题是,Twitter等应用程序如何存储ListView中的确切位置,而不管设备在做什么?我可以重新启动手机20次,但仍然会回到同一状态。

    显然,数据存储在某个地方。他们将它们存储在DatabaseSharedPreference文件中吗? 我倾向于认为Database但我很想知道其他任何选择。当然,我也倾向于认为在处理数据的同时存储收到的数据(片段中的)将是最好的选择。

    他们的任何图书馆都在那里执行我的Google foo找不到的任务吗?或者我是否必须自己为这样的任务创建逻辑?无论对此有什么建议,我都对所有建议持开放态度。我不是在寻找一个懒惰的现成解决方案。我只是寻求建议/指示。 : - )

    我很抱歉这个问题的状态非常主观,很可能会被关闭。

1 个答案:

答案 0 :(得分:1)

如果要保存应用程序中要恢复的数据,无论应用程序生命周期在做什么,您都需要将数据独立保存在内部数据库或内部/外部设备上存储