diff --git a/.idea/compiler.xml b/.idea/compiler.xml
index 7d7ec2e..245a82c 100644
--- a/.idea/compiler.xml
+++ b/.idea/compiler.xml
@@ -1,6 +1,6 @@
-
+
\ No newline at end of file
diff --git a/.idea/misc.xml b/.idea/misc.xml
index 7c7f635..3378229 100644
--- a/.idea/misc.xml
+++ b/.idea/misc.xml
@@ -5,7 +5,7 @@
-
+
diff --git a/app/src/main/java/qianmu/container/activity/BaseActivity.java b/app/src/main/java/qianmu/container/activity/BaseActivity.java
index f0bac26..3078e18 100644
--- a/app/src/main/java/qianmu/container/activity/BaseActivity.java
+++ b/app/src/main/java/qianmu/container/activity/BaseActivity.java
@@ -315,7 +315,7 @@ public abstract class BaseActivity extends AppCompatActivity {
stopService(new Intent(this, MusicService.class));// 背景音乐
}
try {
- Thread.sleep(1000);
+ Thread.sleep(3000);
} catch (InterruptedException e) {
e.printStackTrace();
}
diff --git a/app/src/main/java/qianmu/container/activity/H5/WebViewActivity.java b/app/src/main/java/qianmu/container/activity/H5/WebViewActivity.java
index 0676725..73cd47d 100644
--- a/app/src/main/java/qianmu/container/activity/H5/WebViewActivity.java
+++ b/app/src/main/java/qianmu/container/activity/H5/WebViewActivity.java
@@ -216,7 +216,7 @@ public class WebViewActivity extends BaseActivity {
// 适配HTTPS/HTTP混合内容
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
- webSettings.setMixedContentMode(WebSettings.MIXED_CONTENT_COMPATIBILITY_MODE);
+ webSettings.setMixedContentMode(WebSettings.MIXED_CONTENT_ALWAYS_ALLOW);
}
//加载web
@@ -603,8 +603,10 @@ public class WebViewActivity extends BaseActivity {
}else {
Url = H5Data.getH5Url();
}
- binding.web.clearCache(true);
- binding.web.loadUrl(Url);
+ if(binding.web != null && !StringUtil.isEmpty(Url)){
+ binding.web.clearCache(true);
+ binding.web.loadUrl(Url);
+ }
ToastUtils.showToast("应用更新成功");
break;
diff --git a/app/src/main/java/qianmu/container/activity/program/MyPresentation.java b/app/src/main/java/qianmu/container/activity/program/MyPresentation.java
index 174e631..044f40a 100644
--- a/app/src/main/java/qianmu/container/activity/program/MyPresentation.java
+++ b/app/src/main/java/qianmu/container/activity/program/MyPresentation.java
@@ -27,7 +27,9 @@ import android.widget.LinearLayout;
import android.widget.RelativeLayout;
import android.widget.TextView;
import android.widget.VideoView;
-
+import org.greenrobot.eventbus.EventBus;
+import org.greenrobot.eventbus.Subscribe;
+import org.greenrobot.eventbus.ThreadMode;
import androidx.annotation.NonNull;
import androidx.recyclerview.widget.LinearLayoutManager;
import androidx.recyclerview.widget.RecyclerView;
@@ -62,6 +64,7 @@ import qianmu.container.data.ScreenSaverData;
import qianmu.container.entity.FacilitiesBean;
import qianmu.container.entity.InterFaceBean;
import qianmu.container.entity.MapDataListBean;
+import qianmu.container.entity.MessageEvent;
import qianmu.container.entity.NewProgramBean;
import qianmu.container.entity.ResourceFileBean;
import qianmu.container.entity.Resp;
@@ -1289,7 +1292,7 @@ class MyPresentation extends Presentation {
super.onCreate(savedInstanceState);
setContentView(R.layout.presentation);
initView();
-
+ EventBus.getDefault().register(this);
}
CustomerVideoView videoView2;
@@ -3793,6 +3796,23 @@ class MyPresentation extends Presentation {
class MyWebViewClient extends WebViewClient {
+ }
+ @Subscribe(threadMode = ThreadMode.MAIN)
+ public void onMessageEvent(MessageEvent message) {
+ if (message != null){
+ switch (message.getCode()) {
+ case Constant.ACTION_UPDATE_WEBVIEW://刷新webView
+ if (webList != null && !webList.isEmpty()) {
+ for (WebView webView : webList) {
+ if (webView != null) {
+ webView.clearCache(true);
+ webView.loadUrl(webView.getUrl());
+ }
+ }
+ }
+ break;
+ }
+ }
}
/**
* 添加水牌
diff --git a/app/src/main/java/qianmu/container/activity/program/ViewScreenSaver.java b/app/src/main/java/qianmu/container/activity/program/ViewScreenSaver.java
index 2d36875..19dc38a 100644
--- a/app/src/main/java/qianmu/container/activity/program/ViewScreenSaver.java
+++ b/app/src/main/java/qianmu/container/activity/program/ViewScreenSaver.java
@@ -29,7 +29,9 @@ import android.widget.ImageView;
import android.widget.LinearLayout;
import android.widget.RelativeLayout;
import android.widget.TextView;
-
+import org.greenrobot.eventbus.EventBus;
+import org.greenrobot.eventbus.Subscribe;
+import org.greenrobot.eventbus.ThreadMode;
import androidx.annotation.NonNull;
import androidx.recyclerview.widget.LinearLayoutManager;
import androidx.recyclerview.widget.RecyclerView;
@@ -68,6 +70,7 @@ import java.util.TimerTask;
import cz.msebera.android.httpclient.Header;
import okhttp3.MediaType;
import okhttp3.RequestBody;
+import qianmu.container.R;
import qianmu.container.activity.H5.CoreService;
import qianmu.container.activity.H5.UpdateFileActivity;
import qianmu.container.activity.ViewBase;
@@ -1300,7 +1303,7 @@ public class ViewScreenSaver extends ViewBase {
protected void initView() {
width = DeviceUtil.screenWidth((Activity) context);
height = DeviceUtil.screenHeight((Activity) context);
-
+ EventBus.getDefault().register(this);
}
public void setData(List data) {
@@ -3868,6 +3871,24 @@ public class ViewScreenSaver extends ViewBase {
class MyWebViewClient extends WebViewClient {
}
+
+ @Subscribe(threadMode = ThreadMode.MAIN)
+ public void onMessageEvent(MessageEvent message) {
+ if (message != null){
+ switch (message.getCode()) {
+ case Constant.ACTION_UPDATE_WEBVIEW://刷新webView
+ if (webList != null && !webList.isEmpty()) {
+ for (WebView webView : webList) {
+ if (webView != null) {
+ webView.clearCache(true);
+ webView.loadUrl(webView.getUrl());
+ }
+ }
+ }
+ break;
+ }
+ }
+ }
/**
* 添加水牌
* */
diff --git a/app/src/main/java/qianmu/container/app/MyApplication.java b/app/src/main/java/qianmu/container/app/MyApplication.java
index 8d77fca..b8f3c57 100644
--- a/app/src/main/java/qianmu/container/app/MyApplication.java
+++ b/app/src/main/java/qianmu/container/app/MyApplication.java
@@ -258,15 +258,42 @@ public class MyApplication extends Application {
MyApplication.getInstance().dateTimeFormat.format(new Date(timeMillis)), ":\n",
throwable.getMessage(), "\n", sw.toString());
LoggerUtil.e("APP崩溃", errorLog);
+ if (isSystemExceptionInternal(throwable)) {
+ try {
+ Thread.sleep(5000);
+ SignWayUtil.reboot();
+ } catch (InterruptedException e) {
+ e.printStackTrace();
+ }
+ return;
+ }
restartApp();
});
}
+ private boolean isSystemExceptionInternal(Throwable throwable) {
+ String className = throwable.getClass().getName();
+ String message = throwable.getMessage();
+
+ // 检查常见的系统异常
+ return className.contains("DeadSystemException") ||
+ className.contains("DeadObjectException") ||
+ className.contains("RemoteException") ||
+ className.contains("TransactionTooLargeException") ||
+ className.contains("NetworkOnMainThreadException") ||
+ className.contains("BadParcelableException") ||
+ className.contains("NullPointerException") &&
+ (message != null && message.contains("on a null object reference")) ||
+ className.contains("IllegalStateException") &&
+ (message != null && (message.contains("Fragment not attached") ||
+ message.contains("Activity has been destroyed")));
+ }
+
/**
* 重启软件
*/
public void restartApp() {
- LoggerUtil.e("MyApplication", "重启设备");
+ LoggerUtil.e("MyApplication", "重启软件");
stopService(new Intent(this, ContainerService.class));
stopService(new Intent(this, MessengerService.class));
stopService(new Intent(this, CoreService.class));
@@ -276,12 +303,6 @@ public class MyApplication extends Application {
// 开启背景音乐
stopService(new Intent(this, MusicService.class));// 背景音乐
}
- try {
- Thread.sleep(6000);
- SignWayUtil.reboot();
- } catch (InterruptedException e) {
- e.printStackTrace();
- }
ProcessPhoenix.triggerRebirth(this);
}
diff --git a/app/src/main/java/qianmu/container/mqtt/MQTTService.java b/app/src/main/java/qianmu/container/mqtt/MQTTService.java
index 057ff6a..14a1df7 100644
--- a/app/src/main/java/qianmu/container/mqtt/MQTTService.java
+++ b/app/src/main/java/qianmu/container/mqtt/MQTTService.java
@@ -276,7 +276,6 @@ public class MQTTService extends Service {
// 订阅myTopic话题
client.subscribe(myTopic,2);
sendOnline();
-
connectTime = System.currentTimeMillis();
if(Math.abs(connectTime-connectionLostTime)>3600000){
//连接时间与连接失败时间相差60分钟,连接上时自动拉取最新节目
@@ -287,6 +286,10 @@ public class MQTTService extends Service {
} catch (MqttException e) {
e.printStackTrace();
}
+ if ("信发".equals(DeviceData.getDeviceInfo(DeviceData.HINT_DEVICE_TYPE))
+ || "双面屏".equals(DeviceData.getDeviceInfo(DeviceData.HINT_DEVICE_TYPE))){
+ EventBus.getDefault().post(new MessageEvent(Constant.ACTION_UPDATE_WEBVIEW));
+ }
}
@Override