Report top resumed state only after previous activity lost it

This provides a guarantee that onTopResumedActivityChanged(true) will
always be called only after completing handling
onTopResumedActivityChanged(false) in previous top activity. This
allows for safely acquiring singleton resources in the system,
because the previous app should've already released those.

Bug: 117135575
Test: atest CtsActivityManagerDeviceTestCases:ActivityLifecycleTopResumedStateTests
Change-Id: Ica3e54fae1202db7a7af241b73b9988642fdb85b
7 files changed