原因
- 程序在正常运行过程中没启动一个新的进程,application中的oncreate方法就会执行一次,因此oncreate方法可能会执行多次,例如使用环信做聊天功能的时候…
解决方法
/**
* 获得当前进程的名字
*
* @param context
* @return 进程号
*/
public static String getCurProcessName(Context context) {
int pid = android.os.Process.myPid();
ActivityManager activityManager = (ActivityManager) context.getSystemService(Context.ACTIVITY_SERVICE);
for (ActivityManager.RunningAppProcessInfo appProcess : activityManager
.getRunningAppProcesses()) {
if (appProcess.pid == pid) {
return appProcess.processName;
}
}
return null;
}
onCreate()方法这样写
@Override
public void onCreate() {
super.onCreate();
initIm();
String processName = getCurProcessName(this);
if (!TextUtils.isEmpty(processName)) {
boolean defaultProcess = processName.equals("你的包名");
if (defaultProcess) {
//当前应用的初始化
initBug();
initApp();
}
}
}