Address destroying activities multiple times.
There are various paths which an activity can be destroyed. One possibility is if we have already initiated destroying an activity and then finish all activities in response to a display being removed. In this case, a request will be made to destroy an activity that could already be destroying. Additionally, the state is always set to finishing, regardless of the current state. With the activity lifecycler, multiple destroy requests are not tolerated. The second request will lead to an exception due to not being able to find the activity. Previously, redundant requests were suppressed client side by simply ignoring them. The state change leads to inconsistency as the Activity can come back from destroyed. This changelist addresses these issues by not finishing a destroying/destroyed activity. Additionally, the changelist now enforces that state must move forward. Lastly, redundant destroy requests are not ignored. Bug: 71506345 Test: atest FrameworksServicesTests:com.android.server.am.ActivityRecordTests#testSetInvalidState Test: atest FrameworksServicesTests:com.android.server.am.ActivityStackTests#testSuppressMultipleDestroy Change-Id: I235fa8002f73ad20bb101551fe6ebd5bcc22fa6d
Loading
Please register or sign in to comment