首页 | 新闻 | 新品 | 文库 | 方案 | 视频 | 下载 | 商城 | 开发板 | 数据中心 | 座谈新版 | 培训 | 工具 | 博客 | 论坛 | 百科 | GEC | 活动 | 主题月 | 电子展
返回列表 回复 发帖

Android路由ARouter初步体验(2)

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进行开发,而不会互相影响。
返回列表