Context的實現類有不少,可是 CI 是惟一作具體工做的,其餘實現都是對 CI 作代理。CI 中有一些成員對象,先來看看這些對象的用處: 1.mResources(Resources):獲取 Apk 中 Res 資源的對象。web
2.mOuterContext(Context):用於指向代理本對象的 Context,例如 Activity、Service 等。數據庫
3.mTheme(Resources.Theme):主題bash
4.mPackageManager(PM):包管理類,不只能夠獲取咱們apk包的信息,還能獲取本機apk包的信息。spa
CI 中有不少 Api,我將這些 Api 歸了一下類: 1.Service 操做:啓動、中止、重啓、綁定、解綁、獲取系統服務以及多用戶操做。代理
2.權限操做:檢查本 App 是否有某種權限、檢查某 App 是否有某種權限、檢查Uri權限、授予權限等等。code
3.關於 SP 的操做:咱們知道 SP 其實就是 Xml 文件,因此這裏的操做有:獲取、移動、刪除。xml
4.文件操做:增刪移文件、打開文件流、獲取 App 私有文件夾地址等等。對象
5.數據庫操做:咱們知道 Sqlite 實際上是一種文件型數據庫,因此有:打開、建立、移動、刪除、獲取數據庫文件路徑等操做。資源
ClassPathXmlApplicationContext
e1. ApplicationContext ctx = new ClassPathXmlApplicationContext("bean.xml");
e2. String[] locations = {"bean1.xml", "bean2.xml", "bean3.xml"};
ApplicationContext ctx = new ClassPathXmlApplication(locations);
複製代碼
注:其中FileSystemXmlApplicationContext和ClassPathXmlApplicationContext與BeanFactory的xml文件定位方式同樣是基於路徑的。get
FileSystemXmlApplicationContext
e1. ApplicationContext ctx = new FileSystemXmlApplicationContext("bean.xml"); //加載單個配置文件
e2. String[] locations = {"bean1.xml", "bean2.xml", "bean3.xml"};
ApplicationContext ctx = new FileSystemXmlApplicationContext(locations );
複製代碼
XmlWebApplicationContext
e1. ServletContext servletContext = request.getSession().getServletContext();
ApplicationContext ctx = WebApplicationContextUtils.getWebApplicationContext(servletContext);
複製代碼
4 WebApplicationContext初始化須要ServletContext事例,可在web.xml中配置啓動Servlet或者容器監聽器。
-END-