From 33caa9ff79cff2a905436e6447ca440d9931b78f Mon Sep 17 00:00:00 2001
From: endian11 <Dana_Lee1016@126.com>
Date: 星期二, 10 九月 2019 16:00:34 +0800
Subject: [PATCH] 加入当前进程判断,否则会被远程服务在初始化一次app。会重复多发一次回调

---
 app/src/main/java/safeluck/drive/evaluation/app.java             |   39 +++++++++++++------
 app/src/main/java/safeluck/drive/evaluation/util/SystemUtil.java |   44 ++++++++++++++++++++++
 2 files changed, 70 insertions(+), 13 deletions(-)

diff --git a/app/src/main/java/safeluck/drive/evaluation/app.java b/app/src/main/java/safeluck/drive/evaluation/app.java
index aa76e5e..69d62c4 100644
--- a/app/src/main/java/safeluck/drive/evaluation/app.java
+++ b/app/src/main/java/safeluck/drive/evaluation/app.java
@@ -1,7 +1,10 @@
 package safeluck.drive.evaluation;
 
+import android.app.ActivityManager;
 import android.app.Application;
+import android.content.Context;
 import android.support.annotation.NonNull;
+import android.util.Log;
 
 
 import com.anyun.exam.lib.AYSdk;
@@ -10,6 +13,7 @@
 import me.yokeyword.fragmentation.Fragmentation;
 import me.yokeyword.fragmentation.helper.ExceptionHandler;
 import safeluck.drive.evaluation.util.MyLog;
+import safeluck.drive.evaluation.util.SystemUtil;
 
 /**
  * MyApplication2
@@ -20,38 +24,47 @@
 public class app extends Application implements IAYExamListener {
 
     private static final String TAG = "app";
+
     @Override
     public void onCreate() {
         super.onCreate();
         //鍒濆鍖朏ragment 寤鸿鍦ˋpplication onCreate閲岄潰鍒濆鍖�
-        Fragmentation.builder().stackViewMode(Fragmentation.BUBBLE).debug(false)
-                .handleException(new ExceptionHandler() {
-                    @Override
-                    public void onException(@NonNull Exception e) {
-                        MyLog.i(TAG, "onException: "+e.getMessage());
-                    }
-                })
-                .install();
 
-        AYSdk.getInstance().init(getApplicationContext());
-        AYSdk.getInstance().registListener(this);
+
+        if (SystemUtil.compareProcessName(this)){
+            Fragmentation.builder().stackViewMode(Fragmentation.BUBBLE).debug(false)
+                    .handleException(new ExceptionHandler() {
+                        @Override
+                        public void onException(@NonNull Exception e) {
+                            MyLog.i(TAG, "onException: " + e.getMessage());
+                        }
+                    })
+                    .install();
+
+            AYSdk.getInstance().init(getApplicationContext());
+            AYSdk.getInstance().registListener(this);
+            Log.i(TAG, "onCreate: ");
+        }
+
     }
 
     @Override
     public void onTerminate() {
         super.onTerminate();
-        MyLog.e(TAG,"OnTerminate()");
+        MyLog.e(TAG, "OnTerminate()");
         AYSdk.getInstance().uninit();
     }
 
     @Override
     public void onLowMemory() {
         super.onLowMemory();
-        MyLog.e(TAG,"OnTerminate()");
+        MyLog.e(TAG, "OnTerminate()");
     }
 
     @Override
     public void callBackMsg(String json) {
-        MyLog.d(TAG,"鏀跺埌=="+json);
+        MyLog.d(TAG, "鏀跺埌==" + json);
     }
+
+
 }
diff --git a/app/src/main/java/safeluck/drive/evaluation/util/SystemUtil.java b/app/src/main/java/safeluck/drive/evaluation/util/SystemUtil.java
new file mode 100644
index 0000000..b747600
--- /dev/null
+++ b/app/src/main/java/safeluck/drive/evaluation/util/SystemUtil.java
@@ -0,0 +1,44 @@
+package safeluck.drive.evaluation.util;
+
+import android.app.ActivityManager;
+import android.content.Context;
+import android.text.TextUtils;
+
+import java.util.List;
+
+/**
+ * MyApplication2
+ * Created by lzw on 2019/9/10. 15:45:01
+ * 閭锛�632393724@qq.com
+ * All Rights Saved! Chongqing AnYun Tech co. LTD
+ */
+public class SystemUtil {
+
+    /**
+     * 姣旇緝褰撳墠杩涚▼鍜屽寘鍚嶆槸鍚︿竴鏍凤紝涓嶄竴鏍峰垯鏄笉鍚岃繘绋�
+     * @param context
+     * @return
+     */
+    public static Boolean compareProcessName(Context context){
+        String currentPackage = getCurProcessName(context);
+        if (!TextUtils.isEmpty(currentPackage) && currentPackage.equals(context.getPackageName())){
+            return true;
+        }
+        return false;
+    }
+
+    private static String getCurProcessName(Context context) {
+        int pid = android.os.Process.myPid();
+        ActivityManager mActivityManager = (ActivityManager) context.getSystemService(Context.ACTIVITY_SERVICE);
+        if (mActivityManager != null){
+            List<ActivityManager.RunningAppProcessInfo> runningAppProcessInfos = mActivityManager.getRunningAppProcesses();
+            for (ActivityManager.RunningAppProcessInfo appProcess :
+                   runningAppProcessInfos ) {
+                if (pid == appProcess.pid){
+                    return appProcess.processName;
+                }
+            }
+        }
+        return null;
+    }
+}

--
Gitblit v1.8.0