问题原因:由于在MyApplication里面限制了进程刷新次数导致(友盟有单独开一个进程进行推送相关操作,被限制后就无法接收消息),限制代码如下:
/** 检测当前进程名称是否为应用包名,否则return (像百度地图等sdk需要在单独的进程中执行,会多次执行Application的onCreate()
* 方法,所以为了只初始化一次应用配置,作此判断)*/
if (!CommonUtils.getProcessName(this).equals(getPackageName())) {
return;
}
/**
* 获取当前的进程名称.
*
* @param context 上下文.
* @return 进程名称.
*/
public static StringgetProcessName(Context context) {
final ActivityManager manager =
(ActivityManager) context.getSystemService(Context.ACTIVITY_SERVICE);
String processNameStr ="";
final List<ActivityManager.RunningAppProcessInfo> runningApps =
manager.getRunningAppProcesses();
if (runningApps ==null) {
return processNameStr;
}
for (ActivityManager.RunningAppProcessInfo proInfo : runningApps) {
if (proInfo.pid == android.os.Process.myPid()) {
if (proInfo.processName !=null) {
processNameStr = proInfo.processName;
}
}
}
return processNameStr;
}
解决方案: 注释掉限制代码即可.
网友评论