From 2314cbcfaac0af624ddcedbe81e2b98008603f48 Mon Sep 17 00:00:00 2001
From: hxb <hxb@hdlchina.com.cn>
Date: 星期一, 01 四月 2024 15:11:24 +0800
Subject: [PATCH] 白屏问题优化
---
app/src/main/java/com/hdl/photovoltaic/ui/CPowerStationActivity.java | 150 +++++++++++++++++++++++++++++++++++++++++++------
1 files changed, 130 insertions(+), 20 deletions(-)
diff --git a/app/src/main/java/com/hdl/photovoltaic/ui/CPowerStationActivity.java b/app/src/main/java/com/hdl/photovoltaic/ui/CPowerStationActivity.java
index 90fab32..97f508a 100644
--- a/app/src/main/java/com/hdl/photovoltaic/ui/CPowerStationActivity.java
+++ b/app/src/main/java/com/hdl/photovoltaic/ui/CPowerStationActivity.java
@@ -2,14 +2,20 @@
import android.os.Bundle;
+import android.os.Process;
import android.os.SystemClock;
import android.text.TextUtils;
+import android.util.Log;
+
+
+import androidx.annotation.Nullable;
import com.google.gson.Gson;
import com.google.gson.reflect.TypeToken;
import com.hdl.linkpm.sdk.core.exception.HDLException;
import com.hdl.linkpm.sdk.home.type.HomeType;
import com.hdl.photovoltaic.HDLApp;
+import com.hdl.photovoltaic.R;
import com.hdl.photovoltaic.base.CustomBaseActivity;
import com.hdl.photovoltaic.bean.MqttInfo;
import com.hdl.photovoltaic.config.ConstantManage;
@@ -28,6 +34,10 @@
import com.hdl.photovoltaic.ui.bean.HouseIdBean;
import com.hdl.photovoltaic.ui.bean.OidBean;
import com.hdl.photovoltaic.uni.HDLUniMP;
+import com.hdl.photovoltaic.uni.HDLUniMPSDKManager;
+import com.hdl.photovoltaic.utils.AppManagerUtils;
+import com.hdl.photovoltaic.widget.ConfirmationCancelDialog;
+import com.hdl.photovoltaic.widget.ConfirmationTipDialog;
import com.hdl.sdk.link.HDLLinkLocalSdk;
import com.hdl.sdk.link.common.event.EventListener;
import com.hdl.sdk.link.core.bean.LinkResponse;
@@ -35,6 +45,7 @@
import com.hdl.sdk.link.core.bean.eventbus.BaseEventBus;
import com.hdl.sdk.link.core.bean.gateway.GatewayBean;
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 org.greenrobot.eventbus.Subscribe;
@@ -53,6 +64,7 @@
private ActivityCpowerStationBinding viewBinding;
private EventListener allTopicsListener;
+ private int backPressTimes;
@Override
public Object getContentView() {
@@ -62,14 +74,50 @@
@Override
public void onBindView(Bundle savedInstanceState) {
+ setNotificationBarBackgroundColor(CustomColor.white);
+ setStatusBarTextColor();
//C绔惎鍔ˋpp鑷姩鎵撳紑灏忕▼搴忕數绔欒鎯呯晫闈�
- startAppAutomaticallyOpenUni();
+// startAppAutomaticallyOpenUni();
//娉ㄥ唽鐩戝惉
this.registerAllTopicsListener();
//鍒濆鍖杕qtt瀹㈡埛绔�
this.initMqttClient();
//涓婁紶鏋佸厜娉ㄥ唽ID鍒颁簯绔�
this.pushTokens();
+ }
+
+ @Override
+ protected void onCreate(@Nullable Bundle savedInstanceState) {
+ super.onCreate(savedInstanceState);
+ setTheme(R.style.NoAnimationTheme);
+ }
+
+ @Override
+ protected void onResume() {
+ super.onResume();
+ //鍚姩椤典笌mainActivity鏍峰紡涓�鏍凤紝杩欐牱鍚姩椤靛拰mainActivity鐪嬩笂鍘绘槸涓�涓晫闈紝鐩殑鏄负浜唌ainActivity閬綇涓嬩竴椤碉紱
+// AppManagerUtils.getAppManager().finishActivity(StartActivity.class);
+ this.portConflictDialog();
+ startAppAutomaticallyOpenUni();
+ }
+ public void startAppAutomaticallyOpenUni() {
+ //浣庝簬瀹夊崜14鐗堟湰
+ if (android.os.Build.VERSION.SDK_INT < 34) {
+ startAppAutomaticallyOpenUni(false);
+ } else {
+ new Thread(new Runnable() {
+ @Override
+ public void run() {
+ SystemClock.sleep(10);
+ runOnUiThread(new Runnable() {
+ @Override
+ public void run() {
+ startAppAutomaticallyOpenUni(true);
+ }
+ });
+ }
+ }).start();
+ }
}
@Subscribe(threadMode = ThreadMode.MAIN)
@@ -151,14 +199,21 @@
}
});
}
+ } else if (event.getTopic().contains(HDLUniMP.UNI_EVENT_REPLY_OTHER_MODEL) && event.getType().contains(HDLUniMP.UNI_EVENT_REPLY_OTHER_BACK)) {
+ //鐗╃悊鎸夐敭杩斿洖浜嬩欢(鍖呮嫭宸︽粦绉婚櫎浜嬩欢)
+ killProcessApp();
}
}
+
/**
* C绔惎鍔ˋpp鑷姩鎵撳紑灏忕▼搴忕數绔欒鎯呯晫闈�
*/
- private void startAppAutomaticallyOpenUni() {
+ private void startAppAutomaticallyOpenUni(boolean delay) {
+ if(delay) {
+ SystemClock.sleep(2000);
+ }
List<HouseIdBean> HouseIdList = HdlResidenceLogic.getInstance().getHouseIdList();
if (HouseIdList.size() == 0) {
String path = HDLUniMP.UNI_EVENT_OPEN_HOME_Null_C;
@@ -173,14 +228,50 @@
}
HouseIdBean houseIdBean = HouseIdList.get(select_home);
HdlResidenceLogic.getInstance().switchHouse(houseIdBean);
- String path = HDLUniMP.UNI_EVENT_OPEN_HOME_DETAILS_C
- + "?homeId=" + houseIdBean.getHomeId()
- + "&homeName=" + houseIdBean.getHomeName()
- + "&powerStationStatus=" + houseIdBean.getPowerStationStatus();
+ String path = HDLUniMP.UNI_EVENT_OPEN_HOME_DETAILS_C + "?homeId=" + houseIdBean.getHomeId() + "&homeName=" + houseIdBean.getHomeName() + "&powerStationStatus=" + houseIdBean.getPowerStationStatus();
HdlUniLogic.getInstance().openUniMP(path, null);
}
-
}
+
+// /**
+// * 鐗╃悊鎸夐敭杩斿洖浜嬩欢(鍖呮嫭宸︽粦绉婚櫎浜嬩欢)
+// */
+// @Override
+// public void onBackPressed() {
+// killProcessApp();
+// super.onBackPressed();
+// }
+
+ private void killProcessApp() {
+ //鐗╃悊鎸夐敭杩斿洖浜嬩欢(鍖呮嫭宸︽粦绉婚櫎浜嬩欢)
+ if (AppManagerUtils.getAppManager().getActivitySize() <= 1) {
+ if (backPressTimes == 0) {
+ HdlThreadLogic.toast(_mActivity, R.string.kill_app);
+ backPressTimes = 1;
+ new Thread() {
+ @Override
+ public void run() {
+ try {
+ Thread.sleep(2000);
+ } catch (InterruptedException e) {
+ e.printStackTrace();
+ } finally {
+ backPressTimes = 0;
+ }
+ }
+ }.start();
+ return;
+ } else {
+ //鍏抽棴灏忕▼搴�
+ if (null != HDLUniMPSDKManager.getInstance().getUniMP()) {
+ HDLUniMPSDKManager.getInstance().getUniMP().closeUniMP();
+ }
+ AppManagerUtils.getAppManager().finishAllActivity();
+ Process.killProcess(Process.myPid());
+ }
+ }
+ }
+
@Override
protected void onDestroy() {
@@ -250,21 +341,22 @@
* 鍒濆鍖杕qtt瀹㈡埛绔�
*/
public void initMqttClient() {
-
- HdlMqttLogic.getInstance().getMqttRemoteInfo(HomeType.A, new CloudCallBeak<MqttInfo>() {
- @Override
- public void onSuccess(MqttInfo info) {
- if (info != null) {
- MqttRecvClient.getInstance().setConnectParam(info.getUrl(), info.getClientId(), info.getUserName(), info.getPassWord());
- MqttRecvClient.getInstance().connect();
+ if (!MqttRecvClient.getInstance().isInit()) {
+ HdlMqttLogic.getInstance().getMqttRemoteInfo(HomeType.A, new CloudCallBeak<MqttInfo>() {
+ @Override
+ public void onSuccess(MqttInfo info) {
+ if (info != null) {
+ MqttRecvClient.getInstance().setConnectParam(info.getUrl(), info.getClientId(), info.getUserName(), info.getPassWord());
+ MqttRecvClient.getInstance().connect();
+ }
}
- }
- @Override
- public void onFailure(HDLException e) {
- HdlLogLogic.print("璇诲彇mqtt杩滅▼淇℃伅澶辫触--->" + e.getMessage(), e.getCode(), true);
- }
- });
+ @Override
+ public void onFailure(HDLException e) {
+ HdlLogLogic.print("璇诲彇mqtt杩滅▼淇℃伅澶辫触--->" + e.getMessage(), e.getCode(), true);
+ }
+ });
+ }
}
/**
@@ -336,4 +428,22 @@
}
+ /**
+ * 绔彛鍐茬獊
+ */
+ private void portConflictDialog() {
+ if (!HDLUdpConnect.getInstance().isBindSuccess()) {
+ ConfirmationTipDialog dialog = new ConfirmationTipDialog(_mActivity);
+ dialog.show();
+ dialog.setTitle(getString(R.string.home_account_registered_successfully));
+ dialog.setYesOnclickListener(new ConfirmationCancelDialog.onYesOnclickListener() {
+ @Override
+ public void Confirm() {
+ finish();
+ }
+ });
+ }
+ }
+
+
}
\ No newline at end of file
--
Gitblit v1.8.0