操作系统何时清除捆绑数据?
Posted
技术标签:
【中文标题】操作系统何时清除捆绑数据?【英文标题】: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 采取实例。 【参考方案1】:当活动暂停时,它会保存包含您的捆绑数据的状态。但是如果你调用完成它,活动将清除所有资源
片段一旦被破坏,捆绑包将不再保存。在 viewpager 的情况下,如果要存储状态,则必须使用 statepageadapter
手动执行此操作,否则片段将不会保留其状态。
所以是的,如果有活动,您必须注意包大小,因为活动将在用户使用应用期间保存状态。
【讨论】:
好的,但是在视图寻呼机上,我使用 FragmentStatePagerAdapter 作为视图寻呼机上的片段,当我滚动时它会破坏数据,我的意思是片段被破坏,我通过滚动到片段再次返回它它保留旧包或新包(我的意思是当片段被破坏时旧包数据将消失)。 很好的 viewpager 适配器将保留 bundlw,但一旦超出屏幕限制,它将立即销毁片段。但在返回时,它将从之前存储的状态重新创建它。 基本上你说我们在片段上设置的参数将被清除。就像我们在片段中调用 setargument()、getargument() 函数一样吗?以上是关于操作系统何时清除捆绑数据?的主要内容,如果未能解决你的问题,请参考以下文章
JDK6:何时使用捆绑的 JAX-WS 实现与 Project Metro
Xamarin 表单:如何从 ios 捆绑签名中清除旧的分发证书和配置文件?