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 | 114 ++++++++++++++++++++++++++++++++++++++++++++++++++++++---
1 files changed, 108 insertions(+), 6 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 9b1e787..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,9 +2,13 @@
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;
@@ -30,7 +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;
@@ -38,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;
@@ -66,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)
@@ -155,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;
@@ -177,13 +228,48 @@
}
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());
+ }
+ }
}
@@ -342,6 +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