使用Java的反射实现,所谓反射,就是不直接调用类方法,而是通过invoke间接的调用。
如下,演示了onCreate方法的动态调用:
package com.xuxu; import java.lang.reflect.Method; class A { public void onCreate(int a){ System.out.println("响应的是class A"); } } class B extends A { public void onCreate(int a){ System.out.println("响应的是class B"); } } public class Callback { public void callActivity(String str) throws Exception { Class<?> classType = Class.forName(str); Object invokeTester = classType.newInstance(); Method addMethod = classType.getMethod("onCreate", new Class[] { int.class}); addMethod.invoke(invokeTester, new Object[] { new Integer(100)}); } public static void main(String[] args) throws Exception { // 通过AndroidManifest.xml读取activity的类名 String str ="com.xuxu.B"; Callback c = new Callback(); c.callActivity(str); } }