标题:
Android路由ARouter初步体验(2)
[打印本页]
作者:
look_w
时间:
2019-2-19 17:08
标题:
Android路由ARouter初步体验(2)
5、然后从app的activity跳转到module的activity
public class MainActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
ARouter.init(getApplication());// 初始化,建议放在application里面
ARouter.openLog(); // 打印日志
ARouter.openDebug(); // 开启调试模式(如果在InstantRun模式下运行,必须开启调试模式!线上版本需要关闭,否则有安全风险)
}
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
if (data == null) {
Log.e("---", "------------空--------------");
return;
}
if (requestCode == 100 && resultCode == 0) {
String key = data.getExtras().getString("key");
Toast.makeText(MainActivity.this, "回调的内容:" + key, Toast.LENGTH_LONG).show();
}
}
//跳去module1的页面
public void module(View view) {
//不用activityResult
ARouter.getInstance()
.build("/module1/main") //内容就是想跳转去那个module注解的path
.withString("data", "app传过来的内容") //传参,不用就不需写啦
.navigation();
//使用activityResult,相当于 startActivityForResult
ARouter.getInstance()
.build("/module1/main")
.withString("data", "app传过来的内容")
.navigation(MainActivity.this, 100);
//上面的处理和下面的处理功能一样
Intent intent = new Intent(this, Module1Activity.class);
intent.putExtra("data", "app传过来的内容");
startActivityForResult(intent, 100);
}
}
6、加入混淆
-keep public class com.alibaba.android.arouter.routes.**{*;}
-keep class * implements com.alibaba.android.arouter.facade.template.ISyringe{*;}
总结
好啦,上面的用法只是基本功能使用,进阶功能下篇再写吧。然后问题来了,用这个路由,优势在哪里?解耦,主要应该就是这个吧。当项目非常大的时候,需要有很多组件整合的时候,团队可以分别对这些module进行开发,而不会互相影响。
欢迎光临 电子技术论坛_中国专业的电子工程师学习交流社区-中电网技术论坛 (http://bbs.eccn.com/)
Powered by Discuz! 7.0.0