引用:http://blog.sina.com.cn/s/blog_5f1fe33f0100n5tp.html
转:http://lhc966.javaeye.com/blog/806441
Android中有Context的概念,想必大家都知道。Context可以做很多事情,打开 activity、发送广播、打开本包下文件夹和数据库、获取classLoader、获取资源等等。如果我们得到了一个包的Context对象,那我们基本上可以做这个包自己能做的大部分事情。
1。packageName
2。flags
- package
chroya.demo; -
- 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); -
} - }
- Context
c = createPackageContext("chroya.demo", Context.CONTEXT_INCLUDE_CODE | Context.CONTEXT_IGNORE_SECURITY); - //载入这个类
- Class
clazz = c.getClassLoader().loadClass("chroya.demo.Main"); - //新建一个实例
- Object
owner = clazz.newInstance(); - //获取print方法,传入参数并执行
- Object
obj = clazz.getMethod("print", String.class).invoke(owner, "Hello");