context在java中的出现是如此频繁,但其中文翻译“上下文”又是如此诡异拗口,因此导致很多人不是很了解context的具体含义是指什么,所以很有必要来深究一下这词的含义。
先来举几个java中用到context的例子
(1)jndi的一个类javax.naming.initialcontext,它读取jndi的一些配置信息,并内含对象和其在jndi中的注册名称的映射信息。请看下面的代码:
initialcontext ic=new initialcontext();rmiadaptor server=(rmiadaptor)ic.lookup("jmx/invoker/rmiadaptor");
这是一段jboss中获取mbean的远程调用类的代码。在这里面通过initialcontext中jndi注册的名称“jmx/invoker/rmiadaptor”来获得rmiadaptor对象。这和java集合中的map有点象,有一个string的key,key对映着它的对象。
(2)applicationcontext 是内含configuration.xml配置文件的信息,使得可以通过getbean用名称得到相应的注册对象。
context常用方法:
// 获取应用程序包的assetmanager实例public abstract assetmanager getassets();// 获取应用程序包的resources实例public abstract resources getresources();// 获取packagemanager实例,以查看全局package信息public abstract packagemanager getpackagemanager();// 获取应用程序包的contentresolver实例public abstract contentresolver getcontentresolver();// 它返回当前进程的主线程的looper,此线程分发调用给应用组件(activities, services等)public abstract looper getmainlooper();// 返回当前进程的单实例全局application对象的contextpublic abstract context getapplicationcontext();// 从string表中获取本地化的、格式化的字符序列public final charsequence gettext(int resid) {return getresources().gettext(resid);}// 从string表中获取本地化的字符串public final string getstring(int resid) {return getresources().getstring(resid);}public final string getstring(int resid, object... formatargs) {return getresources().getstring(resid, formatargs);}// 返回一个可用于获取包中类信息的class loaderpublic abstract classloader getclassloader();// 返回应用程序包名public abstract string getpackagename();// 返回应用程序信息public abstract applicationinfo getapplicationinfo();// 根据文件名获取sharedpreferencespublic abstract sharedpreferences getsharedpreferences(string name,int mode);// 其根目录为: environment.getexternalstoragedirectory()public abstract file getexternalfilesdir(string type);// 返回应用程序obb文件路径public abstract file getobbdir();// 启动一个新的activitypublic abstract void startactivity(intent intent);// 启动一个新的activitypublic void startactivityasuser(intent intent, userhandle user) {throw new runtimeexception("not implemented. must override in a subclass.");}// 启动一个新的activity// intent: 将被启动的activity的描述信息// options: 描述activity将如何被启动public abstract void startactivity(intent intent, bundle options);// 启动多个新的activitypublic abstract void startactivities(intent[] intents);// 启动多个新的activitypublic abstract void startactivities(intent[] intents, bundle options);// 广播一个intent给所有感兴趣的接收者,异步机制public abstract void sendbroadcast(intent intent);// 广播一个intent给所有感兴趣的接收者,异步机制public abstract void sendbroadcast(intent intent,string receiverpermission);//发送有序广播public abstract void sendorderedbroadcast(intent intent,string receiverpermission);public abstract void sendorderedbroadcast(intent intent,string receiverpermission, broadcastreceiver resultreceiver,handler scheduler, int initialcode, string initialdata,bundle initialextras);public abstract void sendbroadcastasuser(intent intent, userhandle user);public abstract void sendbroadcastasuser(intent intent, userhandle user,string receiverpermission);// 注册一个broadcastreceiver,且它将在主activity线程中运行public abstract intent registerreceiver(broadcastreceiver receiver,intentfilter filter);//取消注册broadcastreceiverpublic abstract intent registerreceiver(broadcastreceiver receiver,intentfilter filter, string broadcastpermission, handler scheduler);public abstract void unregisterreceiver(broadcastreceiver receiver);// 请求启动一个application servicepublic abstract componentname startservice(intent service);// 请求停止一个application servicepublic abstract boolean stopservice(intent service);// 连接一个应用服务,它定义了application和service间的依赖关系public abstract boolean bindservice(intent service, serviceconnection conn,int flags);// 断开一个应用服务,当服务重新开始时,将不再接收到调用,// 且服务允许随时停止public abstract void unbindservice(serviceconnection conn);// 返回系统级servicepublic abstract object getsystemservice(string name);//检查权限public abstract int checkpermission(string permission, int pid, int uid);// 返回一个新的与application name对应的context对象public abstract context createpackagecontext(string packagename,int flags) throws packagemanager.namenotfoundexception;// 返回基于当前context对象的新对象,其资源与display相匹配public abstract context createdisplaycontext(display display);
以上就是context什么意思的详细内容。