【问题标题】:Static ArrayLists or Serializable Bundles?静态 ArrayLists 还是 Serializable Bundles?
【发布时间】:2017-06-28 13:37:15
【问题描述】:

我有一个 Android 应用程序,它使用 1 个导航抽屉活动和多个片段。该活动从 REST API 获取 JSONObjects 并将它们转换为自定义对象的 ArrayLists。

这些自定义的 ArrayLists 用于多个片段,其中一些被修改,一些仅用于显示。我的应用程序目前将这些 ArrayLists 作为静态对象并将它们导入到必要的片段中,但我知道这可能不是解决此问题的最佳方法。

我应该继续使用静态 ArrayList 还是应该在创建片段时将 ArrayList 打包传递?当然,任何更好的建议也将不胜感激。

【问题讨论】:

  • 据我所知,如果您的应用程序中发生任何应用程序关闭,静态变量在 myapp 中是明确的。
  • @AndroidSurya 我不确定你的意思
  • 在 myapp 中使用静态变量可能会出现问题,所以使用 bundle
  • 如果您的应用针对 API 级别 25,在 Bundle 中传递 List 可能会导致 TransactionTooLarge 异常:developer.android.com/reference/android/os/…
  • @Nerd 有道理。你建议我改用静态数组列表吗?

标签: android android-fragments arraylist static android-bundle


【解决方案1】:

您应该使用捆绑包,因为每次从 REST api 获取 arraylist 都需要时间,并且当您可以传递它们时,无需一次又一次地从 REST api 获取数据。在不需要它的情况下访问 REST api 是不好的做法。而且它还可以节省您在每个片段中编写相同代码的时间。

【讨论】:

  • 实际上,我只使用了一次 REST API(使用活动的 onCreate)。只需在片段中引用这个新形成的 ArrayList 即可
  • 好的,那么你应该使用静态数组列表,因为 bundles 有传递数据的限制,如果数据太大,bundle 会产生问题。捆绑限制为 500kb,如此处所述link
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2010-10-19
  • 2014-01-21
  • 2011-07-26
  • 1970-01-01
  • 2016-08-31
  • 1970-01-01
相关资源
最近更新 更多