在IPC时,有些情况需要调用clearCallingIdentity和restoreCallingIdentity,原因在于:
假如有A进程和B进程,A调用B,B需要知道A的UID和PID,用于权限检测,于是B就保存了A的UID和PID,当此时B调用本身的方法时,binder驱动会检测B调用的是远成进程还是本地进程,如果是本地进程就不会传UID和PID,但此时B保存的仍然是A的UID和PID,所以需要调用clearCallingIdentity来清除A的UID和PID,然后在调用本进程的方法,调用完之后再调用restoreCallingIdentity,来恢复之前保存进程A的UID和PID。