diff --git a/.idea/misc.xml b/.idea/misc.xml index 75dac50..3963879 100644 --- a/.idea/misc.xml +++ b/.idea/misc.xml @@ -24,7 +24,7 @@ - + diff --git a/.idea/modules.xml b/.idea/modules.xml index eac7886..45d1910 100644 --- a/.idea/modules.xml +++ b/.idea/modules.xml @@ -4,8 +4,8 @@ + - diff --git a/app/src/main/java/com/shunzhi/parent/AppContext.java b/app/src/main/java/com/shunzhi/parent/AppContext.java index 83e6c0e..f5a3b55 100644 --- a/app/src/main/java/com/shunzhi/parent/AppContext.java +++ b/app/src/main/java/com/shunzhi/parent/AppContext.java @@ -1,8 +1,10 @@ package com.shunzhi.parent; +import android.app.ActivityManager; import android.content.Context; import android.content.Intent; import android.content.SharedPreferences; +import android.text.TextUtils; import com.amap.api.location.AMapLocation; import com.amap.api.location.AMapLocationClient; @@ -52,19 +54,22 @@ public class AppContext extends GlobalApplication { public AMapLocationClientOption mLocationOption = null; private MessageManager messageManager; + @Override public void onCreate() { appContext = this; super.onCreate(); - //开启地图地位 - initMapLocal(); NIMClient.init(this, loginInfo(), options()); - initDB(); - RetrofitCreateHelper.getInstance().setAuthorization(AppConfig.getAppConfig(this).get(AppConfig.ACCESS_TOKEN)); - messageManager = MessageManager.getInstance(); + if (inMainProcess(this)) { + //开启地图地位 + initMapLocal(); + initDB(); + RetrofitCreateHelper.getInstance().setAuthorization(AppConfig.getAppConfig(this).get(AppConfig.ACCESS_TOKEN)); + messageManager = MessageManager.getInstance(); + } } - public MessageManager getMessageManager(){ + public MessageManager getMessageManager() { return messageManager; } @@ -103,6 +108,46 @@ public class AppContext extends GlobalApplication { return null; } + public static boolean inMainProcess(Context context) { + String packageName = context.getPackageName(); + String processName = getProcessName(context); + return packageName.equals(processName); + } + + /** + * 获取当前进程名 + * + * @param context + * @return 进程名 + */ + public static final String getProcessName(Context context) { + String processName = null; + + // ActivityManager + ActivityManager am = ((ActivityManager) context.getSystemService(Context.ACTIVITY_SERVICE)); + + while (true) { + for (ActivityManager.RunningAppProcessInfo info : am.getRunningAppProcesses()) { + if (info.pid == android.os.Process.myPid()) { + processName = info.processName; + break; + } + } + + // go home + if (!TextUtils.isEmpty(processName)) { + return processName; + } + + // take a rest and again + try { + Thread.sleep(100L); + } catch (InterruptedException ex) { + ex.printStackTrace(); + } + } + } + private void initMapLocal() { //初始化定位 mLocationClient = new AMapLocationClient(getApplicationContext()); @@ -170,7 +215,8 @@ public class AppContext extends GlobalApplication { sendBroadcast(intent); stopLocation(); } else { - cityName = "定位失败";district="定位失败"; + cityName = "定位失败"; + district = "定位失败"; // Log.d("mlocation:","errorCode="+aMapLocation.getErrorCode()+"errorInfo="+aMapLocation.getErrorInfo()); } -- libgit2 0.21.0