是由于进程引起的
<service
android:process=":remote">
</service>
导致了application的多次创建。
解决办法:判断当前进程,选择不同的进程做对应的初始化操作即可。
/**
* 获取当前进程名
*/
private String getCurrentProcessName() {
int pid = android.os.Process.myPid();
String processName = "";
ActivityManager manager = (ActivityManager) getApplicationContext().getSystemService
(Context.ACTIVITY_SERVICE);
for (ActivityManager.RunningAppProcessInfo process : manager.getRunningAppProcesses()) {
if (process.pid == pid) {
processName = process.processName;
}
}
return processName;
}
解决方案,在自定义application中最前面OnCreate中判断
@Override
public void onCreate() {
super.onCreate();
if (!getPackageName().equals(getCurrentProcessName())) {
return;
}
//其他代码
}