通過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訪問