就假如A界面跳转到了B界面并传值接收了,我还想把A界面的值传到C界面和D界面但不进行页面跳转应该怎么办呢,网上搜的都是跳转传值,没什么用呀

解决方案 »

  1.   

    可以通过broadcast或者广播的方式。
      

  2.   

    EventBus
      

  3.   

    如果C和D的界面是在栈内的,那么久使用普通广播或者EventBus的普通事件就可以,如果是不在栈内的,那就需要使用粘性广播或者EventBus的粘性事件
      

  4.   

    你这个需求没有实际的意义。向两个没有打开过的activity传值是不可能的。可能你的业务需求不适合这样传值。你可以把值保存在一个地方,等需要用到该值的activity启动时,在oncreate方法里面取获取文件保存的值
      

  5.   

    同上
    C D在栈内,EventBus传值就可以,不在栈内,在A中将C D需要用到的值保存到SharedPreferences或者文件中,C D要用/更新UI取值的时候就行了
      

  6.   

    C和D界面是有打开操作的,但是并不是由A界面打开,就假如由A跳转到B再由B页面跳转到C,但是C界面的数据在A界面中,能不能直接从A传至C而不像A传至B再由B传至C那么麻烦呢
      

  7.   

    C和D界面是有打开操作的,但是并不是由A界面打开,就假如由A跳转到B再由B页面跳转到C,但是C界面的数据在A界面中,能不能直接从A传至C而不像A传至B再由B传至C那么麻烦呢一般常用的方法有几种:
    1. 单例类:把A的数据保存到单例类,启动C和D时通过单例类取数据
    2. SharePreference:适合保存一些少量的持久化数据。
    3. 数据库:适合保存大量的持久化数据
    一般来说如果你的数据不需要持久化,可能 A 方法用得会多一些。
    另外要说明一点,从A传到B,再从B传到C、D这种做法多数情况下是推荐这样来做的。页面间传递的数据大多数时候是key,而页面要获取的数据是根据key来动态获取的。
      

  8.   

    EventBus,单例,通知,想怎么传就怎么传。
      

  9.   

    EventBus 比较好用,特别是传递的值比较大时
      

  10.   

    我有个笨方法,C和D都定义个静态的变量,这样直接将值赋给C和D的静态变量就行了