Функция на фрагмент перестает обновляться после изменения вкладки - PullRequest
0 голосов
/ 21 ноября 2018

У меня есть приложение с 2 вкладками, первая из которых содержит некоторые значения, которые обновляются в течение времени.Я беру эти значения из действия PhoneStateListener и переношу их во фрагмент с помощью функции ниже.Проблема в том, что когда я перехожу на 2-ю вкладку и после этого возвращаюсь к первому, значения больше не пересчитываются.

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 голосов
/ 21 ноября 2018

Вы можете передать слушателя в методе onTabChanged, когда вкладка содержит Tab1Signal

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...