Kotlin使用ARouter基本步骤

1,在每个module下的build.gradle里:

 plugins{

          id kotlin-kapt
      }

    andorid{

       defaultconfig{
         kapt {
          arguments {arg("AROUTER_MODULE_NAME", project.getName())}
            }
          }

       multiDexEnabled true
    }

dependencies {
   api com.alibaba:arouter-api:1.4.1
   kapt com.alibaba:arouter-compiler:1.2.2
}

2,在application里

class App : Application() {
    override fun onCreate() {
        super.onCreate()

        if (BuildConfig.DEBUG) {
            ARouter.openLog()    // 打印日志
            ARouter.openDebug()  // 开启调试模式(如果在InstantRun模式下运行,必须开启调试模式!线上版本需要关闭,否则有安全风险)
        }
        ARouter.init(this)
    }
}

3,在指定Actvity/fragment里

@Route(path = "/home/HomeActivity" ) //注意格式 以/开头,最少两层
class HomeActivity : AppCompatActivity() {

    @Autowired(name = "tag")
    @JvmField
    var tag: String = ""
    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_home)
        
         // 注意一定要注入才能接收到参数
        ARouter.getInstance().inject(this)
    }
}

4,在使用的Actvity/fragment里

@Route(path = "/app/MainActivity")
class MainActivity : AppCompatActivity() {
    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_home)


        ARouter.getInstance()
            .build("/home/HomeActivity")
            .withString("tag","hello")
            .navigation()
    }
}
经验分享 程序员 微信小程序 职场和发展