Run start and stop in a worker thread

Bug: 401835074
Test: run, rerun, and resize
Change-Id: I71e63b96d537038faacdd120f75e928647ae06bd
diff --git a/android/TerminalApp/java/com/android/virtualization/terminal/VmLauncherService.kt b/android/TerminalApp/java/com/android/virtualization/terminal/VmLauncherService.kt
index 7ec1115..052916f 100644
--- a/android/TerminalApp/java/com/android/virtualization/terminal/VmLauncherService.kt
+++ b/android/TerminalApp/java/com/android/virtualization/terminal/VmLauncherService.kt
@@ -39,6 +39,7 @@
 import android.system.virtualmachine.VirtualMachineException
 import android.util.Log
 import android.widget.Toast
+import androidx.annotation.WorkerThread
 import com.android.system.virtualmachine.flags.Flags
 import com.android.virtualization.terminal.MainActivity.Companion.TAG
 import com.android.virtualization.terminal.Runner.Companion.create
@@ -116,9 +117,11 @@
                 // done.
                 val diskSize = intent.getLongExtra(EXTRA_DISK_SIZE, image.getSize())
 
-                doStart(notification, displayInfo, diskSize, resultReceiver)
+                executorService.submit({
+                    doStart(notification, displayInfo, diskSize, resultReceiver)
+                })
             }
-            ACTION_SHUTDOWN_VM -> doShutdown(resultReceiver)
+            ACTION_SHUTDOWN_VM -> executorService.submit({ doShutdown(resultReceiver) })
             else -> {
                 Log.e(TAG, "Unknown command " + intent.action)
                 stopSelf()
@@ -128,6 +131,7 @@
         return START_NOT_STICKY
     }
 
+    @WorkerThread
     private fun doStart(
         notification: Notification,
         displayInfo: DisplayInfo,
@@ -384,6 +388,7 @@
         }
     }
 
+    @WorkerThread
     private fun doShutdown(resultReceiver: ResultReceiver) {
         if (debianService != null && debianService!!.shutdownDebian()) {
             // During shutdown, change the notification content to indicate that it's closing