发现一些奇怪的问题--- 如果系统把我的app放到后台运行- 有些时候就会发生 某些类的实例被回收掉了-此类是有引用的- 再次调用的时候导致没有做初始化(ps:我以为它初始化过了)-导致数据结果不正常-
1,我不知道为嘛有引用的回被回收掉- 有人知道么?
2.如何处理这种问题-? (目前在已知的地方,再次调用的时候都重新初始化了一次---)有更好的办法么? 比如检测到它被 是否被系统回收掉-···
发现一些奇怪的问题--- 如果系统把我的app放到后台运行- 有些时候就会发生 某些类的实例被回收掉了-此类是有引用的- 再次调用的时候导致没有做初始化(ps:我以为它初始化过了)-导致数据结果不正常-
1,我不知道为嘛有引用的回被回收掉- 有人知道么?
2.如何处理这种问题-? (目前在已知的地方,再次调用的时候都重新初始化了一次---)有更好的办法么? 比如检测到它被 是否被系统回收掉-···
基本上除了activity栈顶的,其他的都是不确定的,系统如果发现内存不够,就会自动回收,然后,有需要的话,就会自动重启.一般OOM的情况下会出现.
解决的办法,每个activity退出的时候,可以序列化数据,然后重启的时候可以再读入.
最简单的解决办法,不要让内存不够就不会出问题了
2 回答1.3k 阅读✓ 已解决
2 回答2.6k 阅读
2 回答1.7k 阅读
1 回答2.1k 阅读
1 回答1.1k 阅读
1 回答1.3k 阅读
1.3k 阅读
首先我没遇到过你说的情况,而且您提供的信息也不多,我把我所知道的和你交流下。
你可以写一个类继承Application(记得在配置文啊件里声明关联它)…系统回收时一般回收和Activity相关的…
你可以把一些全局的东西放到这里声明(这是原生的单体)…
实在还不行…你可以overide lowmemory方法…做些万无一失的策略比如序列化到磁盘…如果真的有必要的话…
另:提醒如果用4.0调试…有个模式会频繁回收Activity