通常情况下获取当前应用的context的方法是getApplicationContext,但是通过根据其他的packageName如何构造Context呢? Android平台的应用实例其实还可以通过其他方式构造。比如代码
try {
Context ctx= createPackageContext("com.android123.Cwj", 0);
//ctx已经是com.android123.cwj的实例
} catch (NameNotFoundException e) {
//可能由于pacakgeName不存在所以必须处理该异常
}
需要注意的是,createPackageContext方法的第二个参数可选为CONTEXT_INCLUDE_CODE 和 CONTEXT_IGNORE_SECURITY ,定义分别为4和2,上面为0。一般忽略安全错误问题可以通过CONTEXT_IGNORE_SECURITY 标记,同时可能还需要处理 SecurityException 异常。
RSS