Android中有Context的概念,想必大家都知道。Context可以做很多事情,打開(kāi)activity、發(fā)送廣播、打開(kāi)本包下文件夾和數(shù)據(jù)庫(kù)、獲取classLoader、獲取資源等等。如果我們得到了一個(gè)包的Context對(duì)象,那我們基本上可以做這個(gè)包自己能做的大部分事情。
那我們能得到嗎?很高興的告訴你,能!
Context有個(gè)createPackageContext方法,可以創(chuàng)建另外一個(gè)包的上下文,這個(gè)實(shí)例不同于它本身的Context實(shí)例,但是功能是一樣的。
這個(gè)方法有兩個(gè)參數(shù):
1。packageName 包名,要得到Context的包名
2。flags 標(biāo)志位,有CONTEXT_INCLUDE_CODE和CONTEXT_IGNORE_SECURITY兩個(gè)選項(xiàng)。CONTEXT_INCLUDE_CODE的意思是包括代碼,也就是說(shuō)可以執(zhí)行這個(gè)包里面的代碼。CONTEXT_IGNORE_SECURITY的意思是忽略安全警告,如果不加這個(gè)標(biāo)志的話,有些功能是用不了的,會(huì)出現(xiàn)安全警告。
下面給個(gè)小例子,執(zhí)行另外一個(gè)包里面的某個(gè)類的方法。
另外一個(gè)包的包名是chroya.demo,類名Main,方法名print,代碼如下:
Java代碼
import android.app.Activity;
import android.os.Bundle;
import android.util.Log;
class Main extends Activity {
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
}
public void print(String msg) {
Log.d("Main", "msg:"+ msg);
}
}
新聞熱點(diǎn)
疑難解答
圖片精選