Use AsyncTask.SERIAL_EXECUTOR as the default executor for scan

Because there will be multiple callbacks for each scan and they must be
invoked with the same order as they are received by the platform, we
should use AsyncTask.SERIAL_EXECUTOR instead of
AsyncTask.THREAD_POOL_EXECUTOR as the default executor.

This is a clean cherry-pick from:
https://android-review.googlesource.com/#/c/platform/frameworks/base/+/640804/

Bug:74840070
Test: Unit Test, CTS Test
Change-Id: I7333940dad38f7e400a4124486bdb21cea0d5220
Merged-in: I7333940dad38f7e400a4124486bdb21cea0d5220
(cherry picked from commit 2e8d5ed7768f905e77780c3d7e8a88d07e5d91b3)
2 files changed