在活动之间切换时保存和恢复RecyclerView

时间:2016-10-07 01:11:34

标签: android

我有HomeActivity包含来自Firebase的recyclerView显示数据加载,但是当点击项目并返回HomeActivity时,应用程序会从Firebase重新加载数据。我想在返回HomeActivity时将持有者数据(列入数据放入CustomAdapter)。

1 个答案:

答案 0 :(得分:1)

如果您通过startActivity()再次访问Homeactivity,或在Homeactivity中呼叫finish()onDestroy() 有3个选项:

  1. 您需要在SqliteOpenHelper的帮助下将数据保存在数据库中。通过从数据库中提取数据而不是Firebase
  2. 来显示数据
  3. 将数据保存在缓存中。可以在不存储缓存数据的情况下重新访问缓存数据。缓存持续时间和大小必须由您决定。
  4. 将数据存储在共享首选项中,当再次打开活动时可以访问该首选项。
  5. 当使用这三种方法中的任何一种时,您需要指定应用程序何时应与firbase连接以获取新数据。您可以设置gcm通知以告知应用程序新数据可用,或安排应用程序尝试检查新数据是否可用并尝试下载的时间。

    HomeActivity默认位于activityStack中,因此如果在NextActivity中按下了反印,HomeActivity将会打开。

    savedInstanceState适用于配置更改(即轮换等)。您需要覆盖OnSaveInstanceState,以防止OnCreate删除所有数据。但是,如果您通过startActivity()再次访问Homeactivity,或者在HomeActivity中调用finish()onDestroy(),则此数据会丢失。