ARouterの基本使用


  • 依存関係の追加と構成
  • android {
        defaultConfig {
            ...
            javaCompileOptions {
                annotationProcessorOptions {
                    arguments = [AROUTER_MODULE_NAME: project.getName()]
                }
            }
        }
    }
    
    dependencies {
        //        ,       api
        //   compiler    ,            
        compile 'com.alibaba:arouter-api:x.x.x'
        annotationProcessor 'com.alibaba:arouter-compiler:x.x.x'
        ...
    }
    
  • SDK
  • の初期化
    if (isDebug()) {           //        init  ,       init      
        ARouter.openLog();     //     
        ARouter.openDebug();   //       (   InstantRun     ,        !        ,       )
    }
    ARouter.init(mApplication); //     ,   Application    
    
  • 注記の追加
  • ルーティングをサポートするページに注釈
  • を追加する.
  • パスは、少なくとも2つのレベルが必要であることに注意してください./xx/xx(パスはクラスに書くことを推奨し、検索と置換を容易にする)例:
  • @Route(path = "/test/activity")
    public class YourActivity extend Activity {
        ...
    }
    
    public static class A {
    
    		public static final String PART = "/login/";
        public static final String LOGIN=PART+"login";
        public static final String REGISTER=PART+"register";
        public static final  String GETCODE=PART+"getcode";
        public static final String UNBIND_BIND_PHONE=PART+"unbind_bind_phone";
        public static final String FORGET_PASSWD = PART+"forgetpasswd";
        public static final String SET_LOGIN_PASSWD = PART+"set_login_passwd";
    }
    
    
  • ページジャンプ
  • // 1.         (  URL   '    ' )
    ARouter.getInstance().build("/test/activity").navigation();
    
    // 2.        
    ARouter.getInstance().build("/test/1")
                .withLong("key1", 666L)
                .withString("key3", "888")
                .withObject("key4", new Test("Jack", "Rose"))
                .navigation();
    
  • 解析パラメータ
  • パラメータ名がパラメータを渡すときのkeyの名前と同じであれば、受信パラメータのオブジェクト名に@Autowired注記
  • を直接使用できます.
  • パラメータ名とパラメータを渡すときのkeyの名前が異なる場合は、受信パラメータのオブジェクト名に@Autowired(name="")注釈を使用してパラメータを渡すときのkeyを入力します.

  • //             ,    @Autowired   
    // URL     Parcelable    ,  ARouter api    Parcelable  
    @Route(path = "/test/activity")
    public class Test1Activity extends Activity {
        @Autowired
        public String name;
        @Autowired
        int age;
        
        //   name   URL      
        @Autowired(name = "girl") 
        boolean boy;
        
        //          ,URL   json  
        @Autowired
        TestObj obj;      
        
        //    withObject    List   Map     
        // Serializable       (ArrayList/HashMap)
        //    ,                    
        //       List   Map,           
        //    ,                     
        @Autowired
        List list;
        @Autowired
        Map> map;
        
        @Override
        protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        ARouter.getInstance().inject(this);
    
        // ARouter          ,      
        Log.d("param", name + age + boy);
        }
    }
    
    
    //            ,     (        ),     SerializationService,   @Route    (             ),  :
    @Route(path = "/yourservicegroupname/json")
    public class JsonServiceImpl implements SerializationService {
        @Override
        public void init(Context context) {
    
        }
    
        @Override
        public  T json2Object(String text, Class clazz) {
            return JSON.parseObject(text, clazz);
        }
    
        @Override
        public String object2Json(Object instance) {
            return JSON.toJSONString(instance);
        }
    }
    

    参考:Arouter公式サイトアドレス