Android 中静态变量的生命周期

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

什么时候类会加载呢?

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

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

那何时释放?

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

静态变量靠谱么?

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

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

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

静态变量的访问范围?

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

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

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

关于单例模式?

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

关于Application?

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

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

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

 

转载于:https://www.cnblogs.com/blog-wenfeng/archive/2013/06/04/3117457.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值