有时你希望在你的app里对一些创建好的object进行共享,例如httpClient object, login flag variable。
你当然可以用static or Singleton pattern来实现共享,但最好的方法就是创建一个custom Application class,然后把你要共享的object放在这个class里。这个class instance存在于你的app的整个lifetime。你可以在任何Activity里获取它。
具体代码:
1. create a custom application class
public class CAPApplication extends Application{
private CAPHttpClientService capHttpClientService=new CAPHttpClientService();
private boolean hasLogin=false;
public CAPHttpClientService getCapHttpClientService() {
return capHttpClientService;
}
public boolean isHasLogin() {
return hasLogin;
}
public void setHasLogin(boolean hasLogin) {
this.hasLogin = hasLogin;
}
}
2. 然后在"AndroidManifest.xml" file里的<application> tag添加property "android:name" (its values is your application class name)
<application
android:name =".CAPApplication"
android:icon="@drawable/ic_launcher"
android:label="@string/app_name" >
3. 那么在Activity里则可以通过 call ((CAPApplication) getApplication())来获取里面共享的object
例如: capHttpClientService = ((CAPApplication) getApplication()).getCapHttpClientService();