我有一个MainActivity.java,它使用BroadcastReceiver不断地(每隔2秒钟)检测从其他外部设备接收的信号。然后,此MainActivity处于实时状态并持续检测信号,它会不断计算接收到的信号数量,然后存储在变量(varA)中。此后,我需要显示SignalFragment.java中已收到多少信号(varA)(使用片段,因为我需要使用tab / pager,使用onCreateView),SignalFragment中的显示应该是实时的并且可以更新并显示在每当BroadcastReceiver检测到信号时(每当varA更改/更新时)都会显示一个textview。
但是,即使我使用GlobalState变量,我也无法不断更新SignalFragment。你如何继续更新SignalFragment中的textview,或者继续将变量从MainActivity传递给SignalFragment?怎么做?
答案 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);
}