ARouter 路由跳转—IProvider

注意,在你具体些的时候,可能会思考一个问题,这个抽象接口该往哪儿放?我的建议是放在公共域内,一般是往base里放,因为只有这样,你其他的moudle才可以对该服务进行访问。

另外,更高级一点的场景是,顶层抽象出来的接口,你不同Moudle可以有不同的实现。

ARouter 路由跳转—IProvider

1.ARouter环境的配置
2.顶层抽象出来的接口,你不同Moudle可以有不同的实现

  public interface INewsProvider extends IProvider {
    //跳转到新闻界面
   void startNewsDetail();
} 

3.接口实现类NewProvider

  @Route(path = ServicePathTag.SERVICE_NEWS,name = "新闻")
       public class NewProvider implements INewsProvider {
       @Override
       public void startNewsDetail() {
          ARouter.getInstance().build(ServicePathTag.NEWS_DETAIL).navigation();
       }
       @Override
       public void init(Context context) {

      }
  }

4.主界面:需要调用的地方 MainActivity

  class MainActivity : AppCompatActivity() {

    @Autowired(name = ServicePathTag.SERVICE_NEWS)
    internal var newProvider: INewsProvider? = null

    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_main)
        tv_app.setOnClickListener {
            newProvider?.startNewsDetail()
        }
    }
}

5.跳转目标页 NewsDetailActivity

  @Route(path = ServicePathTag.NEWS_DETAIL)
  public class NewsDetailActivity extends Activity {
     private TextView tv_news_two;
      @Override
      protected void onCreate(@Nullable Bundle savedInstanceState) {
          super.onCreate(savedInstanceState);
          setContentView(R.layout.activity_news_splash);
           }
  }

你可能感兴趣的:(ARouter 路由跳转—IProvider)