Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[问答]需要给activity跳转增加路由么? #383

Open
snowjade opened this issue Feb 25, 2016 · 22 comments
Open

[问答]需要给activity跳转增加路由么? #383

snowjade opened this issue Feb 25, 2016 · 22 comments

Comments

@snowjade
Copy link

Android中大部分Activity跳转如下:
Intent i = new Intent(AActivity.this, BActivity.class);
startActivity(i);

   但是我们CTO表示,这么写耦合性太强。要给跳转增加一个路由,跳转时,代码里写一个字符串类似的东西,由路由映射到具体的Activity,以减少耦合性。
   我觉得这么弄,非常没必要,而且也没见人这么写过,但是我又不知如何反驳,大家觉得是否应该增加一个这样的路由呢?
@maoruibin
Copy link

还是有用的,我们项目就有一个 NavigationManager 专门管理所有的 Intent 跳转,这样的好处是如果多个地方引用同一个跳转,后续如果要修改会比较方便~

@snowjade
Copy link
Author

确是有这样的好处,cto也是这么讲,不过没想到真有这么写的,如果方便的话,能把你们的NavigationManager给我看看么,不方便就算了。

@maoruibin
Copy link

就是在 NavigationManager 写一大堆静态的跳转方法 如 gotoMainActivity() gotoDetailActivity() 等等,没有经过什么更复杂的封装,就是简单的静态方法而已~

@snowjade
Copy link
Author

嗯,好的,谢谢。

@dasunsy
Copy link

dasunsy commented Feb 25, 2016

有统一入口,减少冗余的好处

@sandy1108
Copy link

封装好,有利于后期维护,是很有道理的。

@razerdp
Copy link

razerdp commented Feb 25, 2016

我们也是这么做的,好处就是。。。。不用在某个activity里面疯狂的找startActivity这个代码....

@fengdianxun
Copy link

我是在被打开的页面里写静态的工厂方法,从规范上约束大家跳转只能调被打开页面的工厂方法。

@tanranran
Copy link

public class UIhelper {
    public static Intent intent;
    public static void showMain(Context context){
        intent=new Intent(context, MainActivity.class);
        context.startActivity(intent);
    }
}

使用 UIhelper.showMain(context);

我是这样写的

@Olaman
Copy link

Olaman commented Feb 26, 2016

不同的跳转,涉及传值,我原来也写过,感觉用处不大

@jp1017
Copy link

jp1017 commented Feb 26, 2016

http://dwz.cn/2N7NPF

@easternHong
Copy link

@jp1017
应该还有
public static void showXXX(Activity context,Intent intent){}

@nekocode
Copy link

@jp1017
又是 Tab 又是 空格,一看就让人觉得是 Copy&Paste 的。

@jp1017
Copy link

jp1017 commented Feb 27, 2016

@nekocode 那个是别人的项目啊,我只是提供链接供大家参考 🎱

@biaomingzhong
Copy link

参考CleanArchitectureNavigator.java

@maoruibin
Copy link

今天看到一个解决 Activity 之间的跳转方案的 库,思路不错,通过注解来控制,有兴趣的同学可以研究下 https://github.com/f2prateek/dart

@l123456789jy
Copy link

@jp1017 那还不如直接抽出一个activitymanger来,这里面都是存放跳转界面的逻辑。

@baiiu
Copy link

baiiu commented Mar 16, 2016

App研发录里面有讲。貌似是利用反射来跳转到该Activity的。我们一般都是在Activity上面写一个静态方法。

public static Intent newInstance(Activity activity){
       return new Intent(activity, A.class);
}

开源中国android-app里面有一个UIHelper用来全局跳转的,你可以看看。

@Torahlzy
Copy link

放到一个类的好处应该还是有很多的。如果项目大了,直接看导航类就能方便找到指定的页面类。或者类改了,有些intent参数必须要增加,这样可以只改一处。

@jp1017
Copy link

jp1017 commented Mar 24, 2016

刚发现了个好东西:
https://github.com/campusappcn/AndRouter

@snowberry001
Copy link

你们cto的意思应该是使用url schema来跳转

@razerdp
Copy link

razerdp commented Sep 22, 2016

感觉url,类似deep link跳转的话,可能容易出错,就是写少了什么东西之类的,拼错了单词之类的,而且也要维护这一大堆字符串,也没有静态检查。

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests