Explorar el Código

还原xcrash异常处理,增加tcp重启指令处理

weizhengliang hace 3 años
padre
commit
342e306685

+ 4 - 4
app/src/main/code/com/wdkl/app/ncs/application/Application.kt

@@ -5,9 +5,9 @@ import com.enation.javashop.android.jrouter.JRouter
 import com.wdkl.ncs.android.lib.base.BaseApplication
 import com.enation.javashop.net.engine.config.NetEngineConfig
 import com.enation.javashop.net.engine.plugin.exception.RestfulExceptionInterceptor
-//import com.wdkl.app.ncs.conversion_box.helper.AnrFcExceptionUtil
+import com.wdkl.app.ncs.conversion_box.helper.AnrFcExceptionUtil
 import com.wdkl.app.ncs.conversion_box.helper.NetHelper
-import com.wdkl.app.ncs.conversion_box.helper.XCrashUtils
+//import com.wdkl.app.ncs.conversion_box.helper.XCrashUtils
 import com.wdkl.core.socket.SocketManager
 import com.wdkl.core.voip.VoipEvent
 import com.wdkl.net.HttpRequestPresenter
@@ -100,9 +100,9 @@ class Application : BaseApplication() {
         SocketManager.getInstance().init(applicationContext)
 
         //anr catcher
-        //AnrFcExceptionUtil.getInstance(this).initFCException()
+        AnrFcExceptionUtil.getInstance(this).initFCException()
 
         //xCrash catcher
-        XCrashUtils().init(this)
+        //XCrashUtils().init(this)
     }
 }

+ 2 - 2
conversion_box/build.gradle

@@ -112,10 +112,10 @@ dependencies {
      */
     compile 'com.android.support.constraint:constraint-layout:1.1.0-beta5'
 
-    //compile 'com.github.anrwatchdog:anrwatchdog:1.3.0'
+    compile 'com.github.anrwatchdog:anrwatchdog:1.3.0'
 
     //使用xCrash捕获异常
-    implementation 'com.iqiyi.xcrash:xcrash-android-lib:3.0.0'
+    //implementation 'com.iqiyi.xcrash:xcrash-android-lib:3.0.0'
 }
 
 /**

+ 14 - 11
conversion_box/src/main/java/com/wdkl/app/ncs/conversion_box/activity/MainActivity.kt

@@ -57,7 +57,6 @@ import org.greenrobot.eventbus.EventBus
 import org.greenrobot.eventbus.Subscribe
 import org.greenrobot.eventbus.ThreadMode
 import serialporttest.utils.SerialPortUtil
-import xcrash.TombstoneManager
 import java.util.*
 import java.util.UUID
 import kotlin.collections.ArrayList
@@ -129,11 +128,8 @@ class MainActivity :BaseActivity<MainActivityPresenter, MainActivityLayoutBindin
         // 添加登录回调
         SocketManager.getInstance().addUserStateCallback(this)
 
-        if (Build.MODEL.equals("rk3128")) {
-            //串口监听
-            setSerialListner()
-        }
-
+        //串口监听
+        setSerialListner()
         SerialPortHelper.sipRegState("2")
 
         //更新状态图标
@@ -149,10 +145,6 @@ class MainActivity :BaseActivity<MainActivityPresenter, MainActivityLayoutBindin
         tv_mac_addr.setText("MAC: " + Constant.LOCAL_MAC + "\nIP: " + NetHelper.getInstance().localIP + ", server: " + serverIp)
         tv_version.setText("V" + BuildConfig.VERSION_NAME + "_" + BuildConfig.VERSION_CODE)
 
-        if (TombstoneManager.getAllTombstones() != null) {
-            tv_crash.setText("crash日志: " + TombstoneManager.getAllTombstones().size)
-        }
-
         //initCallTimer()
     }
 
@@ -994,6 +986,13 @@ class MainActivity :BaseActivity<MainActivityPresenter, MainActivityLayoutBindin
                             }
                         } else if (tcpModel.action == TcpAction.DeviceAction.DEVICE_REFRESH) {
                             initDevice()
+                        } else if (tcpModel.action == TcpAction.DeviceAction.RESTART) {
+                            //收到重启app指令,若当前处于正常待机状态则直接重启app,否则等待通话结束再重启
+                            if (Constant.CALL_STATE == Constant.CALL_STANDBY) {
+                                AppUpdateHelper.restartApp(activity)
+                            } else {
+                                Constant.LATER_RESTART = true
+                            }
                         }
                     } else if (tcpModel.action == TcpAction.DataAction.REFRESH) {
                         //重新加载数据,比如出院,入院等
@@ -1260,7 +1259,11 @@ class MainActivity :BaseActivity<MainActivityPresenter, MainActivityLayoutBindin
                     } else {
                         view_title_layout_tv_point.setBackgroundResource(R.color.red_color)
                     }
-                } else {
+
+                    if (Constant.LATER_RESTART && Constant.CALL_STATE == Constant.CALL_STANDBY) {
+                        AppUpdateHelper.restartApp(activity)
+                    }
+                } else if (TextUtils.isEmpty(Constant.TCP_SERVER_URL)) {
                     presenter.loadTcpServerHost()
                 }
             } else if (intent.action == ConnectivityManager.CONNECTIVITY_ACTION) {

+ 3 - 2
conversion_box/src/main/java/com/wdkl/app/ncs/conversion_box/helper/AnrFcExceptionUtil.java.bak

@@ -67,8 +67,9 @@ public class AnrFcExceptionUtil implements Thread.UncaughtExceptionHandler {
                 Log.e(TAG, "error : ", e);
             }
 
-            android.os.Process.killProcess(android.os.Process.myPid());
-            System.exit(0);
+            AppUpdateHelper.restartApp(application);
+            //android.os.Process.killProcess(android.os.Process.myPid());
+            //System.exit(0);
         }
     }
 

+ 0 - 5
conversion_box/src/main/java/com/wdkl/app/ncs/conversion_box/helper/AppUpdateHelper.java

@@ -214,11 +214,6 @@ public class AppUpdateHelper {
     }
 
     public static void restartApp(Context context) {
-        CallSession session= SkyEngineKit.Instance().getCurrentSession();
-        if(session!=null&&session.getState()!= EnumType.CallState.Idle){
-            SkyEngineKit.Instance().endCall();
-        }
-
         //重新启动app
         Intent mStartActivity = new Intent(context.getApplicationContext(), WelcomeActivity.class);
         mStartActivity.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);

conversion_box/src/main/java/com/wdkl/app/ncs/conversion_box/helper/XCrashUtils.java → conversion_box/src/main/java/com/wdkl/app/ncs/conversion_box/helper/XCrashUtils.java.bak


+ 0 - 7
conversion_box/src/main/res/layout/main_activity_layout.xml

@@ -110,13 +110,6 @@
                 android:textSize="20sp"
                 android:text="MCU:"/>
             <TextView
-                android:id="@+id/tv_crash"
-                android:layout_width="wrap_content"
-                android:layout_height="wrap_content"
-                android:textColor="@color/color_red"
-                android:textSize="20sp"
-                android:text="crash日志:"/>
-            <TextView
                 android:id="@+id/tv_device_status"
                 android:layout_width="wrap_content"
                 android:layout_height="wrap_content"

+ 3 - 0
middleware/src/main/code/com/wdkl/ncs/android/middleware/common/Constant.java

@@ -23,6 +23,9 @@ public class Constant {
     //TCP连接是否成功
     public static boolean TCP_CONNECTED = false;
 
+    //延时重启app
+    public static boolean LATER_RESTART = false;
+
     //0--白天,1--夜晚
     public static int day_state = -1;