介绍:
冒着关闭问题的危险,我无论如何都会尝试提出这个问题。我做了很多搜索,但大多数内容是关于方向更改时保存ListView
状态并在返回Activity
时进行恢复。那不是我想要的。
诸如Twitter应用程序之类的应用程序以及其他一些类似的应用程序将恢复到上次使用该应用程序时的状态。当您返回应用程序时,所有新数据(如果有)会加载到当前位置上方。
在当前设置中,我使用三个类。public class NewNotifications extends SherlockFragment {....} // THE FRAGMENT WHERE THE DATA IS PROCESSED
public class NewNotificationsAdapter extends BaseAdapter {....} // THE ADAPTER FOR THE CUSTOM LISTVIEW
public class NotificationsData {} // A HELPER SETTER / GETTER CLASS
当前显示的所有数据都使用Facebook SDK实时获取,并且一切正常。但是我担心会发生大量数据使用。例如,以上三个类共同工作以显示当前登录用户的任何新/旧通知。但是,每当用户单击“通知”按钮时,无论它们是新的通知,都将再次重新获取相同的数据。这使我想到了主要问题。
问题:
主要问题是,无论设备在做什么,Twitter之类的应用程序如何在ListView
中存储确切位置?我可以将手机重新启动20次,但仍返回到相同的状态。
显然,数据存储在某个地方。它们是否将它们存储在Database
或SharedPreference
文件中?我倾向于认为Database
。但我很想知道其他替代方法。我自然也倾向于认为,在仍处理接收到的数据的同时(在Fragment中)存储接收到的数据将是最好的选择。
他们的图书馆中有没有执行我的Google foo找不到的任务的库?还是我必须独自为此类任务创建逻辑?不管对此有何建议,我都会接受所有建议。我不是在寻找现成的懒惰解决方案。我只是寻求建议/方向。 :-)
对于这个问题的主观性很强,很可能将被关闭,我感到抱歉。
最佳答案
如果要保存要从应用程序中恢复的数据,无论应用程序生命周期在做什么,都需要在应用程序中进行恢复,则需要将数据独立地保存在内部数据库或内部/外部设备存储中。