问题:两次onCreate都做了同样的初始化
原因:程序启动了另一个进程
解决方法:
判断当前进程名称是不是是不是要初始化的那个进程,根据processName判断,如果不知道名称可以把他们全部用Log打印出来,再看看哪个是
private fun getProcessName(context: Context, pid: Int): String {
val am: ActivityManager =
context.getSystemService(Context.ACTIVITY_SERVICE) as ActivityManager
val runningApps = am.runningAppProcesses
for (procInfo in runningApps) {
if (procInfo.pid == pid) {
return procInfo.processName
}
}
return ""
}
使用:
val processName = getProcessName(this, android.os.Process.myPid())
if (processName == PROCESS_NAME) {
//做相关初始化
}