而本文讲解的其实并不是一个技术方面,而是一个Android产品研发过程中的技巧:尽量不使用静态变量保存核心数据。
这是为什么呢?这是因为Android系统中的应用进程并不是安全的,包括application对象、静态变量在内的进程级别变量并不会一直呆着内存里面,它会被kill掉,它真的有可能会被kill掉,真的真的,重要的事情说三遍。
与大家普遍的看法不同之处在于,当进程被干掉之后,实际上app不会重新开始启动。Android系统会创建一个新的Application 对象,然后启动上次用户离开时的activity以造成这个app从来没有被kill掉得假象。而这时候静态变量等数据由于进程已经被杀死而被初始化,所以就有了我们的不推荐在静态变量(包括Application中保存全局数据静态数据)的观点。