加入当前进程判断,否则会被远程服务在初始化一次app。会重复多发一次回调
1个文件已修改
1个文件已添加
57 ■■■■■ 已修改文件
app/src/main/java/safeluck/drive/evaluation/app.java 13 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
app/src/main/java/safeluck/drive/evaluation/util/SystemUtil.java 44 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
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,10 +24,14 @@
public class app extends Application implements IAYExamListener {
    private static final String TAG = "app";
    @Override
    public void onCreate() {
        super.onCreate();
        //初始化Fragment 建议在Application onCreate里面初始化
        if (SystemUtil.compareProcessName(this)){
        Fragmentation.builder().stackViewMode(Fragmentation.BUBBLE).debug(false)
                .handleException(new ExceptionHandler() {
                    @Override
@@ -35,6 +43,9 @@
        AYSdk.getInstance().init(getApplicationContext());
        AYSdk.getInstance().registListener(this);
            Log.i(TAG, "onCreate: ");
        }
    }
    @Override
@@ -54,4 +65,6 @@
    public void callBackMsg(String json) {
        MyLog.d(TAG,"收到=="+json);
    }
}
app/src/main/java/safeluck/drive/evaluation/util/SystemUtil.java
New file
@@ -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;
    }
}