Avoid potential NPE by accessing ActivityRecord on logger thread

The r.getPid() is "return app != null ? app.getPid() : 0;".
If it is not in lock, the field "app" could be cleared by other
thread, which causes NPE on "app.getPid()".

Also change other log field to use info snapshot which is thread safe.

Fix: 364131071
Flag: EXEMPT bugfix
Test: atest ActivityMetricsLaunchObserverTests#testLaunchState
Change-Id: I0249c72fefffcba8589bb79135484e7b050f61f8
1 file changed