Giter Club home page Giter Club logo

aretrofit's People

Contributors

yifei8 avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

aretrofit's Issues

几点建议

  1. 我个人感觉服务发现和路由两块可以分开来做.原因有以下几点:
  • 两者本来的联系就没有
  • 路由的拦截器、跳转的实现、用户的 Callback 其实都是需要在主线程的
  • 服务发现的服务是需要即刻返回的,而一个路由的是否成功跳转不是
    2.你的那个类似于 retrofit 的接口如果实现了第一点,其实更有助于你利用 retrofit 原理去自定义返回值,甚至支持 RxJava
    3.其实你们可能觉得host和path是一个整体比较方便,但是我觉得 host 和 path 分来会更有控制,因为 host 通常指的是一个模块,这对你对某一个模块的路由控制会大大增强
    4.我看你的路由能返回 boolean 等信息.我建议让你的路由整体处于异步,但是用户触碰到的地方都是主线程,这会让你的路由更加强大.这样子拦截器就可以执行耗时的操作了.这个作用其实挺大,比如下面的场景:
  • 跳转的目标需要定位成功才能进去
  • 目标需要登录才能进去
  • 目标需要通过服务器验证传递过去的参数才能进去
    5.最后对之前的冒犯说声 sorry,没看清楚具体情况. 如果你愿意有更多的讨论,可以加我好友
    347837667

同页面两次以上的starforResult的形式启动的bug

Routerfit.register(AppRouter.class).skipActivity1("参数1", new ActivityCallback() {
                    @Override
                    public void onActivityResult(int result, Object data) {
                        Toast.makeText(MainActivity.this, data.toString(), Toast.LENGTH_SHORT).show();
                        Routerfit.register(AppRouter.class).skipActivity2(new ActivityCallback() {
                            @Override
                            public void onActivityResult(int result, Object data) {
                                Toast.makeText(MainActivity.this, data.toString(), Toast.LENGTH_SHORT).show();
                            }
                        });
                    }
                });

第二次的回调一定不会成功。

而且我还发现一个问题,比如 Routerfit.setResult(Routerfit.RESULT_OK),但是

void setResult(String key, @IntRange(from = -1, to = 0) int result, Object data) {
        ActivityCallback callback = map.get(key);
        if (callback != null) {
            callback.onActivityResult(result, data);
            map.remove(key);
        }
    }

这个方法总会回调两次,我不知道这个是否是正常的。下面我会贴上调试的图片。
这是我先跳转Activity1,上面方法被回调两次,
微信截图_20190523225343
微信截图_20190523225415
接着我在跳Activity1的回调里面再跳转Activity2,调试如下:
微信截图_20190523225559
微信截图_20190523225612

is it bug

Caused by: java.lang.ClassNotFoundException: Didn't find class "com.sjtu.yifei.route.RouteService"
why do i click the textview with the demo, it happen bug. are you sure it is ok?can the project run?

高阶用法的疑问

高阶用法中的服务,可跨模块获取对象,请问如果这个对象需要异步生成之后才能获取到,这个有什么好的实现方式吗

实用JDK1.8在windows上的一点小问题

如果使用windows10+android studio开发,库中如果使用了jdk中的ClassLoader,则会出现rebuild的时候删除不了build文件夹中的一些生成的jar包。
这个是我在和AppInit这个库的作者一起调试发现的,该库作者使用GroovyClassLoader替换Java的ClassLoader解决了这个问题,现在我司项目还有这个问题,我现在在所有使用到的第三方库下都提了这个issures,如果库中没有使用,请自动忽略。。。
AppInit的修复

这个问题只在windows上有出现,macOS上是没有的。并且我只测试了JDK1.8+windows10这一种情况,其他没有测试过。

Demo.apk无法安装

应该是楼主直接发了build下面的apk,不是release版本的。望更新一下

作者您下一步的计划是什么?

我司项目现在使用的是CC这个框架,这个框架有个最大的优点是可以实现代码隔离,缺点是不能很好管理所有跳转,开发人员多了就比较混乱,而作者的这个框架则很好的解决了这个问题。希望作者能吸取各大库的优点,解决更多的问题。当然希望作者不要误会我,我只是提个建议,完全没有义务去做这些事情。最后祝新年快乐!!!

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.