通过Application类实现维护应用全局状态的方法
application回调函数
Application对象由Android系统管理,它的回调函数都运行于UI线程,因此一定不能做耗时操作,耗时操作一定要放在其他线程
- onCreate
- onConfigurationChanged
- onLowMemory
onConfigurationChanged:语言,转屏发生变化时调用
onLowMemory:内存低时调用
application存放全局变量
public class BaseApp extends Application {
public String name="zhang";
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
}
静态单例
也可实现应用全局状态的共享
- 用Application对象实现共享
- 用静态单例实现共享
优缺点:尽量用单例,模块化程度比较好,松耦合,方便控制,可以随时注销,register和unregister
而Application的全局变量生命周期不可控,是由app的生命周期决定的
Appcation优点:可以接受系统回调,单例不行,可以直接访问系统资源,单例需要额外的参数context访问