没图说个JB, 先上图为敬:
说明: Activity1是主Activity, Activity2是由Activity1启动的。Activity2底部有TabLayout,分别点击TabLayout里的按钮,会分别装载对应的Fragment。如图所见,Fragment1就是点击了底部第一个按钮装载好的。顶部的小叉叉按钮属于Activity2的,点击后会关闭Activity2。
任务:
Fragment1里面有个按钮,点击后,使用Activity1里的对象线程A发送指令,然后得到下位机的参数。(Activity1中的矩形框不是按钮,只是一个流程示意图)。然后问题来了:我怎样才能通知Fragment1得到这些数据额并刷新UI(显示在参数列表框中)呢?
想了几个办法:
0、可以在Activity2中创建一个线程,然后捕捉Activity1里面的数据。觉得这办法最笨,而且还要创建一个线程,不想采用
1、用Intent, 但这个应该是在启动Activity2的时候传过去的,现在这个时候还能传过去吗?
2、用handler,但handler可以跨Activity吗,而且我这还是Activity里面的Fragment
3、用广播 LocalBroadcastManager,但这个已经被弃用
4、用SharedPreferences,就是键值对,适合String、int等简单类型,复杂类型比如类对象没办法传送
5、EventBus,这个似乎可行,没试过,也不知道能不能解决我这问题。
我是Android小白,很多东西还不是太了解,想请教各位大神,你们是怎么解决这个问题的呢?