Android 中静态变量的生命周期

静态变量的生命周期,起始于类的加载,终止于类的释放。

什么时候类会加载呢?

   我们知道,在app打开时,会创建一个进程,然后初始化一个dvm的实例,负责类的加载释放 和 垃圾回收等。

   换句话说,在进程创建之后,就会加载类,静态变量诞生了。

那何时释放?

   当然是在类卸载的时候。同上面。在进程结束之前,静态变量就寿终正寝。

静态变量靠谱么?

我们知道,Android中,你是不知道何时进程会被Kill。所以

1.不能保证静态变量会一直存在.(进程可能被Kill掉)

2.每次打开app时静态变量的值都是初始值(进程没有被kill掉所以静态变量保存的还是上次的值)。

静态变量的访问范围?

该进程中的所有线程都可以访问静态变量。言外之意是不同进程间的静态变量不相关的。

所以一个声明在其他进程的Broadcast是不能够使用观察者模式,让app进程观察的。

只能通过进程间通信(我知道这个很蛋疼,但Messager是解决方法)。

关于单例模式?

综上所述,单例模式只要没有被销毁或为null。ARC会一直保持引用,所以在进程生存期间,不会被回收。

关于Application?

它就是个单例对象,当进程杀死了,android会帮你重建application,但是里面的数据当然不会帮你保存

本人不喜欢用Application。上面已经可以体现出它的带着点点蛋蛋的忧伤了。

数据都没了玩转它就困难了。。。

 

posted @ 2013-06-04 17:15  wFeng  阅读(883)  评论(0编辑  收藏  举报