【问题标题】:When is bundle data cleared by os?操作系统何时清除捆绑数据?
【发布时间】:2018-08-03 05:13:08
【问题描述】:

让我直接回答我的问题,现在我们知道从 Android 7.0 到高 TransactionTooLargeException,如果数据大小超过 1mb,则会发生运行时异常。我知道我们需要减少传输高数据而不是让单例处理数据。我只想知道数据何时从一个活动传输到另一个活动或片段(如 viewpager 上的 set argment)被清除,或者即使在活动或片段被破坏后也没有清除(我的意思是捆绑数据)。或者它在 stck 上保持不变直到进程被破坏的捆绑价值。当通过捆绑传输的数据变得清晰时,请给出一个想法,我的疑问是如果捆绑数据传输即使在 activit 销毁后也没有得到 clera,它会超过 1 mb 以产生此异常,请帮助

【问题讨论】:

  • 如果您需要在内存中保留或传递这么多信息,那么您可能做错了什么。
  • no @Henry 我的意思是我想知道捆绑数据什么时候会被销毁或清除?
  • 我传递了 3 个 int 值和 6 个字符串值而不是大数据,但是我的视图寻呼机可以无限滚动,所以我需要知道每次我刷卡时我有大约 100 页在循环中,所以这将是一个崩溃,我的意思是事务太大,你需要知道捆绑数据何时变得清晰
  • 捆绑包有什么不同?就像我使用 FragmentPagerAdapter 一样,它不会更新数据也占用了大量内存,因为片段没有被 clearedit 采取实例。

标签: android android-intent bundle


【解决方案1】:

当活动暂停时,它会保存包含您的捆绑数据的状态。但是如果你调用完成它,活动将清除所有资源

片段一旦被破坏,捆绑包将不再保存。在 viewpager 的情况下,如果要存储状态,则必须使用 statepageadapter 手动执行此操作,否则片段将不会保留其状态。

所以是的,如果有活动,您必须注意包大小,因为活动将在用户使用应用期间保存状态。

【讨论】:

  • 好的,但是在视图寻呼机上,我使用 FragmentStatePagerAdapter 作为视图寻呼机上的片段,当我滚动时它会破坏数据,我的意思是片段被破坏,我通过滚动到片段再次返回它它保留旧包或新包(我的意思是当片段被破坏时旧包数据将消失)。
  • 很好的 viewpager 适配器将保留 bundlw,但一旦超出屏幕限制,它将立即销毁片段。但在返回时,它将从之前存储的状态重新创建它。
  • 基本上你说我们在片段上设置的参数将被清除。就像我们在片段中调用 setargument()、getargument() 函数一样吗?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-09-24
  • 2019-07-07
  • 1970-01-01
  • 1970-01-01
  • 2013-03-18
相关资源
最近更新 更多