wjc
2025-05-07 8814f3f0828e6ac652a29cc9de9f971fd55bca5b
app/src/main/java/com/hdl/photovoltaic/ui/BPowerStationActivity.java
@@ -5,6 +5,7 @@
import androidx.fragment.app.Fragment;
import androidx.fragment.app.FragmentManager;
import androidx.fragment.app.FragmentTransaction;
import androidx.lifecycle.Lifecycle;
import android.Manifest;
import android.content.Context;
@@ -54,6 +55,7 @@
import com.hdl.photovoltaic.ui.powerstation.HouseAndDeviceFragment;
import com.hdl.photovoltaic.uni.HDLUniMP;
import com.hdl.photovoltaic.utils.AppManagerUtils;
import com.hdl.photovoltaic.utils.FragmentUtils;
import com.hdl.photovoltaic.utils.GPSManagerUtils;
import com.hdl.photovoltaic.utils.PermissionUtils;
import com.hdl.photovoltaic.utils.SharedPreUtils;
@@ -68,6 +70,7 @@
import com.hdl.sdk.link.core.config.HDLLinkConfig;
import com.hdl.sdk.link.core.connect.HDLUdpConnect;
import com.hdl.sdk.link.core.utils.mqtt.MqttRecvClient;
import com.umeng.analytics.MobclickAgent;
import org.greenrobot.eventbus.Subscribe;
import org.greenrobot.eventbus.ThreadMode;
@@ -105,7 +108,7 @@
        setStatusBarTranslucent();
        getWindow().setNavigationBarColor(getColor(R.color.text_FF1C1C1E));
        //初始化碎片
        initFragment(savedInstanceState);
        initFragment(null);
        //初始化
        this.initView();
        //初始化界面监听器
@@ -151,16 +154,31 @@
            fragmentList.add(mFragmentManager.findFragmentByTag(1 + ""));
            fragmentList.add(mFragmentManager.findFragmentByTag(2 + ""));
            fragmentList.add(mFragmentManager.findFragmentByTag(3 + ""));
            restoreFragment();//恢复fragment页面
            this.restoreFragment();//恢复fragment页面
        } else {
            //
            this.removeAllFragments(mFragmentManager);
            //正常启动时调用
            if (!fragmentList.isEmpty()) {
                fragmentList.clear();
            }
            fragmentList.add(mHomePageFragment);
            fragmentList.add(mHouseAndDeviceFragment);
            fragmentList.add(mMessageFragment);
            fragmentList.add(mMeFragment);
            showFragment();
            this.showFragment();
        }
//        if (!fragmentList.isEmpty()) {
//            fragmentList.clear();
//        }
//        // 正常启动时调用
//        fragmentList.add(mHomePageFragment);
//        fragmentList.add(mHouseAndDeviceFragment);
//        fragmentList.add(mMessageFragment);
//        fragmentList.add(mMeFragment);
//        FragmentUtils.loadMultipleFragment(R.id.module_fcv, mFragmentManager, fragmentList.toArray(new Fragment[0]));
    }
@@ -169,6 +187,7 @@
     * 显示fragment
     */
    private void showFragment() {
//        FragmentUtils.showHideFragment(mFragmentManager, fragmentList.toArray(new Fragment[0])[currentFragmentIndex]);
        FragmentTransaction ft = mFragmentManager.beginTransaction();
        //如果之前没有添加过
        if (!fragmentList.get(currentFragmentIndex).isAdded()) {
@@ -177,12 +196,10 @@
        } else {
            ft.hide(currentFragment).show(fragmentList.get(currentFragmentIndex));
        }
        //把当前显示的fragment记录下来
        currentFragment = fragmentList.get(currentFragmentIndex);
        ft.commit();
        //把当前显示的fragment记录下来
        currentFragment = fragmentList.get(currentFragmentIndex);
    }
    /**
@@ -198,6 +215,28 @@
            }
        }
        ft.commit();
    }
    private void removeAllFragments(FragmentManager manager) {
        if (manager == null) return;
        try {
            final List<Fragment> fragments = manager.getFragments();
            if (fragments.isEmpty()) {
                return;
            }
            FragmentTransaction transaction = manager.beginTransaction();
            for (int i = 0; i < fragments.size(); i++) {
                Fragment fragment = fragments.get(i);
                if (fragment != null) {
//                     FragmentManager childManager = fragment.getChildFragmentManager();
//                    removeAllFragments(childManager);
                    transaction.remove(fragment);
                }
            }
            transaction.commit();
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
@@ -624,7 +663,7 @@
                return;
            }
            int index = -1;
            List<GatewayBean> list = HdlDeviceLogic.getInstance().getCurrentHomeGatewayList(UserConfigManage.getInstance().getHomeId(),null);
            List<GatewayBean> list = HdlDeviceLogic.getInstance().getCurrentHomeGatewayList(UserConfigManage.getInstance().getHomeId(), null);
            for (int i = 0; i < list.size(); i++) {
                GatewayBean gatewayBean = list.get(i);
                if (gatewayBean.getGatewayId().equals(topics[2])) {
@@ -785,7 +824,10 @@
                return;
            } else {
                AppManagerUtils.getAppManager().finishAllActivity();
                //如果开发者调用kill或者exit之类的方法杀死进程,或者双击back键会杀死进程,请务必在此之前调用MobclickAgent.onKillProcess方法,用来保存统计数据。
                MobclickAgent.onKillProcess(_mActivity);
                Process.killProcess(Process.myPid());
            }
        }
        super.onBackPressed();