更改标签后,进入片段的功能停止刷新

时间:2018-11-21 14:27:57

标签: java android android-fragments

我有一个带有2个标签的应用,其中第一个包含一些在一段时间内刷新的值。我从PhoneStateListener活动中获取这些值,并使用下面的函数将它们传输到片段中。问题是,当我移至第二个选项卡,然后移回至第一个选项卡时,不再引用这些值。

public void test(int LteSignalStrength,int LteRsrp,int LteRsrq,int LteRssnr,int LteCqi){
    if(ntype=="\nNetwork Type: LTE\n"){
        tv2.setText("\nLteSignalStrength:"+dbm+" dbm"+
                "\nLteRsrp: "+LteRsrp+
                "\nLteRsrq: "+LteRsrq+
                "\nLteRssnr: "+LteRssnr);
    }
}

PhonestateListener活动

public Tab1Signal(Tab1Values fragment){
    mcontext = fragment.getContext();
    main=fragment;
}   

public void onSignalStrengthsChanged(SignalStrength signalStrength){
    super.onSignalStrengthsChanged(signalStrength);
    try {
        Method[] methods = android.telephony.SignalStrength.class.getMethods();
        for (Method mthd : methods) {
            if (mthd.getName().equals("getLteSignalStrength")){
                //val1=mthd.getName() ;
                LteSignalStrength=(Integer)mthd.invoke(signalStrength);
                //main.test(val2);
            }
            if (mthd.getName().equals("getLteRsrp")){
                LteRsrp=(Integer)mthd.invoke(signalStrength);
            }
            if (mthd.getName().equals("getLteRsrq")){
                LteRsrq=(Integer)mthd.invoke(signalStrength);
            }
            if (mthd.getName().equals("getLteRssnr")){
                LteRssnr=(Integer)mthd.invoke(signalStrength);
            }
            if (mthd.getName().equals("getLteCqi")){
                LteCqi=(Integer)mthd.invoke(signalStrength);
            }
            main.test(LteSignalStrength,LteRsrp,LteRsrq,LteRssnr,LteCqi);
        }
    } catch (SecurityException e) {
        e.printStackTrace();
    } catch (IllegalArgumentException e) {
        e.printStackTrace();
    } catch (IllegalAccessException e) {
        e.printStackTrace();
    } catch (InvocationTargetException e) {
        e.printStackTrace();
    }

有人知道我该怎么解决吗?

1 个答案:

答案 0 :(得分:0)

当制表符包含onTabChanged时,您可以在方法Tab1Signal中传递侦听器