Search in sources :

Example 1 with Action

use of com.jia.base.annotation.Action in project Headline by kb18519142009.

the class BaseApplication method getAllActivities.

/**
 * 初始化 路由表
 */
private void getAllActivities() {
    try {
        DexFile dexFile = new DexFile(this.getPackageResourcePath());
        Enumeration entries = dexFile.entries();
        while (entries.hasMoreElements()) {
            String entryName = (String) entries.nextElement();
            // 开始匹配Activity
            if (entryName.contains("activity") && entryName.contains("Activity")) {
                // 通过反射获得Activity类
                Class entryClass = Class.forName(entryName);
                if (entryClass.isAnnotationPresent(Action.class)) {
                    Action action = (Action) entryClass.getAnnotation(Action.class);
                    this.mapping.put(action.value(), entryClass);
                }
            }
        }
    } catch (IOException e) {
        e.printStackTrace();
    } catch (ClassNotFoundException e) {
        e.printStackTrace();
    }
}
Also used : Action(com.jia.base.annotation.Action) Enumeration(java.util.Enumeration) IOException(java.io.IOException) DexFile(dalvik.system.DexFile)

Aggregations

Action (com.jia.base.annotation.Action)1 DexFile (dalvik.system.DexFile)1 IOException (java.io.IOException)1 Enumeration (java.util.Enumeration)1