Android(Java) - 不断将更新/活动变量从活动传递到片段

时间:2014-05-21 16:22:49

标签: android android-fragments broadcastreceiver fragment android-fragmentactivity

我有一个MainActivity.java,它使用BroadcastReceiver不断地(每隔2秒钟)检测从其他外部设备接收的信号。然后,此MainActivity处于实时状态并持续检测信号,它会不断计算接收到的信号数量,然后存储在变量(varA)中。此后,我需要显示SignalFragment.java中已收到多少信号(varA)(使用片段,因为我需要使用tab / pager,使用onCreateView),SignalFragment中的显示应该是实时的并且可以更新并显示在每当BroadcastReceiver检测到信号时(每当varA更改/更新时)都会显示一个textview。

但是,即使我使用GlobalState变量,我也无法不断更新SignalFragment。你如何继续更新SignalFragment中的textview,或者继续将变量从MainActivity传递给SignalFragment?怎么做?

2 个答案:

答案 0 :(得分:0)

每次需要更新时,您都可以使用Otto等事件总线发布到Fragment。实际上,您可以直接将更新从BroadcastReceiver推送到Fragment

答案 1 :(得分:0)

取决于您首先如何创建SignalFragment实例。 您可以调用实例,也可以从片段管理器中查找实例。

    FragmentManager fragmentManager = getFragmentManager();
    Fragment fragment = fragmentManager.findFragmentByTag(TAG_SIGNAL_FRAGMENT);
    if(fragment != null)
    {
        ((SignalFragment) fragment).setNoOfDevices(some value);
    }