问题
第一个问题:app按两次Back键到桌面,再返回app数据没有置空
- 项目中有一个全局单例保存的数据 我发现每次当我按下Back键返回,再进入之后App的数据都会递增
无论我在它的生命周期各个方法里执行清空都没有用?于是翻阅资料 查找后 得到这样一个答案!
仔细阅读下面这句话 可以理解其中的意思
- 另外在activity中按下back键,实际是调用了finish方法,应用退出。虽然应用已经退出,但进程没有被杀死。
android中一个应用运行于独立的一个虚拟机实例中,所以在重新启动应用时一个类中的静态对象还保持着运行时
的状态,注意在合适位置复位这些状态。 - static变量或是全局单例都存在进程中,不能马上被销毁,仍然保留当前值。为了解决该问题只需要在onCreate
方法中重新对静态变量赋值即可。 - 我在单例保存数据的时候 没有重新new 新的集合 而是用的之前的 所以数据一直有问题
- 如果用的是单例模式储存数据 应该在调用的时候 将
装数据的容器置空
或者重新new
第二个问题:app按home键到桌面,再返回app不重启app
- 问题:home键到桌面后,返回app,app重新打开了一遍,但原来的界面还在,只是在原来的界面上覆盖了一层。
查找答案后,发现很好解决:在AndroidManifest.xml里边,主activity里边。去掉:android:launchMode=""这一行代码即可;
与君共勉
我要一步一步往上爬在最高点乘着叶片往前飞任风吹干流过的泪和汗我要一步一步往上爬等待阳光静静看着它的脸小小的天有大大的梦想我有属于我的天任风吹干流过的泪和汗总有一天我有属于我的天