wjc
20 小时以前 c19f27f32f3c3d2caf82ddbdc3b2602ee3610e46
app/src/main/java/com/hdl/photovoltaic/HDLApp.java
@@ -7,6 +7,7 @@
import android.content.Intent;
import android.content.res.Configuration;
import android.os.Build;
import android.os.Handler;
import android.os.LocaleList;
import android.os.Process;
import android.os.SystemClock;
@@ -34,6 +35,7 @@
import com.hdl.photovoltaic.other.HdlResidenceLogic;
import com.hdl.photovoltaic.other.HdlThreadLogic;
import com.hdl.photovoltaic.ui.LoginActivity;
import com.hdl.photovoltaic.ui.StartActivity;
import com.hdl.photovoltaic.uni.HDLUniMPSDKManager;
import com.hdl.photovoltaic.utils.AppManagerUtils;
import com.hdl.photovoltaic.utils.LocalManageUtil;
@@ -44,10 +46,12 @@
import com.hdl.sdk.link.core.connect.HDLUdpConnect;
import com.hdl.sdk.link.core.utils.QueueUtils;
import com.hdl.sdk.link.core.utils.mqtt.MqttRecvClient;
import com.umeng.analytics.MobclickAgent;
//import com.umeng.commonsdk.UMConfigure;
import org.greenrobot.eventbus.EventBus;
import java.io.Console;
import java.util.HashMap;
import java.util.List;
import java.util.Locale;
@@ -88,6 +92,7 @@
    @Override
    public void onCreate() {
        super.onCreate();
        Log.d("=======", "11111111");
//        // 获取当前进程的PID
//        String processMessage= "进程ID:"+Process.myPid()+" 进程名:"+RuningAcitvityUtil.getAppName(getBaseContext());
//        Log.d(TAG, processMessage);
@@ -204,6 +209,7 @@
     * 初始化HDLLinkPMSdk
     */
    private void initHDLLinkPMSdk() {
        Log.d("===1====", "2222222");
        //1.初始化SDK
        HDLLinkPMSdk.initWithAppKey(this, AppConfigManage.getAppKey(), AppConfigManage.getAppSecret(), AppConfigManage.getAPPRegionUrl());
        //2.设置打印
@@ -228,13 +234,26 @@
        HDLLinkPMUser.getInstance().setOnReloginListener(new IOnReloginListener() {
            @Override
            public void onReLogin(int type) {
                if (100 == type) {
                    new Handler().postDelayed(new Runnable() {
                        @Override
                        public void run() {
                            //切换服务器地址用的
                            UserConfigManage.getInstance().setOnlineServer(!UserConfigManage.getInstance().isOnlineServer());
                            UserConfigManage.getInstance().Save();
                            restartApp(mHDLApp);
                        }
                    }, 500);
                    ;
                } else {
                HdlLogLogic.print("监听到登录退出---" + type, true);
                //type:  0:正常退出   1:极光推送强制退出
                //收到登录处理通知,关闭所有页面并打开登录页面
                AppManagerUtils.getAppManager().finishAllActivity();
//                HDLSDKSPUtils.clear();//底层自己清空
                    //清空住宅id
                    UserConfigManage.getInstance().setHomeId("");
                //重新登陆,默认同意隐私政策
                UserConfigManage.getInstance().setAcceiptPolicy(false);
                //重新设定一个时间
@@ -269,6 +288,7 @@
                    intent.putExtra("isJpush", true);
                }
                startActivity(intent);
                }
            }
        });
@@ -433,4 +453,42 @@
            return this;
        }
    }
    /**
     * 重启app
     */
    private void restartApp(Context context) {
        try {
            MobclickAgent.onKillProcess(context);
            Intent intent = new Intent(context, StartActivity.class);
            intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_CLEAR_TASK);
            context.startActivity(intent);
            killAppProcess(context);
        } catch (Exception e) {
            String a = e.getMessage();
        }
    }
    private void killAppProcess(Context context) {
//        AppManagerUtils.getAppManager().finishAllActivity();
        try {
            android.app.ActivityManager manager = (android.app.ActivityManager) context.getSystemService(Context.ACTIVITY_SERVICE);
            List<android.app.ActivityManager.RunningAppProcessInfo> processInfos = manager.getRunningAppProcesses();
            // 先杀掉相关进程,最后再杀掉主进程
            for (android.app.ActivityManager.RunningAppProcessInfo runningAppProcessInfo : processInfos) {
                if (runningAppProcessInfo.pid != android.os.Process.myPid()) {
                    try {
                        android.os.Process.killProcess(runningAppProcessInfo.pid);
                    } catch (Exception e) {
                        e.printStackTrace();
                    }
                }
            }
            android.os.Process.killProcess(android.os.Process.myPid());
        } catch (Exception e) {
            e.printStackTrace();
        }
        System.exit(0);
    }
}