Android中 为什么能够响应自定应Activity的onCreate函数

使用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);
    }
}

 

posted on 2012-12-19 20:15  笔记吧... 可能只有自己看得懂  阅读(605)  评论(0)    收藏  举报