У меня есть приложение с 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();
}
Кто-нибудь знает, как я могурешить это?