Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Route如果因为内存不足被销毁了怎么办 #100

Open
xudjx opened this issue Apr 9, 2018 · 4 comments
Open

Route如果因为内存不足被销毁了怎么办 #100

xudjx opened this issue Apr 9, 2018 · 4 comments

Comments

@xudjx
Copy link

xudjx commented Apr 9, 2018

你好,Route是一个单例,里面注册了大量的组件和接口信息,如果因为内存不足被系统销毁了,就会造成整个app奔溃,这个问题你们考虑过吗?

@Weightang
Copy link

应该不会吧,都在引用的话,那怎么销毁?

@xudjx
Copy link
Author

xudjx commented Apr 9, 2018

比如app进入了后台,系统把APP的UI和Router这样的大对象给销毁了,但是APP的Application实例还保留。这个时候重新打开App就会有问题了,因为不会再registerComponent了

@Weightang
Copy link

Weightang commented Apr 9, 2018

https://www.jianshu.com/p/1946bd4f3bb5

这个看看,应该重新走下流程

@xiaojinzi123
Copy link

比如app进入了后台,系统把APP的UI和Router这样的大对象给销毁了,但是APP的Application实例还保留。这个时候重新打开App就会有问题了,因为不会再registerComponent了

首先我可以认为你没有完全了解 Android, Router 中的静态的表如何都被销毁了,那么就代表着你的 Application 已经销毁,当再次回来的时候,其实是会初始化 Application 的,不存在什么 Application 没有销毁了,其他静态变量被回收了,如果是这样子的话,那些百度地图等第三方的用 Application 初始化的是不是也会出现类似的问题呢?回收Activity是有的,但是回收 Application 的话其实就已经是整个 App 退出了,再次进来会初始化 Application 的,所以这个问题不用担心
所以你只要把初始化的代码放在 Application 中,肯定不会出现 Router 被回收造成崩溃的问题

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants