静态变量的生命周期,起始于类的加载,终止于类的释放。
什么时候类会加载呢?
我们知道,在app打开时,会创建一个进程,然后初始化一个dvm的实例,负责类的加载释放 和 垃圾回收等。
换句话说,在进程创建之后,就会加载类,静态变量诞生了。
那何时释放?
当然是在类卸载的时候。同上面。在进程结束之前,静态变量就寿终正寝。
静态变量靠谱么?
我们知道,Android中,你是不知道何时进程会被Kill。所以
1.不能保证静态变量会一直存在.(进程可能被Kill掉)
2.每次打开app时静态变量的值都是初始值(进程没有被kill掉所以静态变量保存的还是上次的值)。
静态变量的访问范围?
该进程中的所有线程都可以访问静态变量。言外之意是不同进程间的静态变量不相关的。
所以一个声明在其他进程的Broadcast是不能够使用观察者模式,让app进程观察的。
只能通过进程间通信(我知道这个很蛋疼,但Messager是解决方法)。
关于单例模式?
综上所述,单例模式只要没有被销毁或为null。ARC会一直保持引用,所以在进程生存期间,不会被回收。
关于Application?
它就是个单例对象,当进程杀死了,android会帮你重建application,但是里面的数据当然不会帮你保存
本人不喜欢用Application。上面已经可以体现出它的带着点点蛋蛋的忧伤了。
数据都没了玩转它就困难了。。。