有人可以解释一下startActivity(intent)和startActivityForResult(intent)是如何异步的?

如果异步线程是一个与主线程分开操作并且不干扰主线程的线程..

在通过startActivity(intent)启动后,新Activity是否不占用主线程?

我在这里读到的大部分内容都说这些都是异步的,但是有一些相互矛盾的答案,并且那些说这并不能给出令人信服的论据的人。

因此,如果有任何人清楚地知道他们为什么是同步/异步,那么我将是一个非常感激的人!

干杯

编辑:所以我从这两个好人和一些东西在线上得到的答案..

将活动纳入同步/异步的混合可能会导致马的负荷。 但它仍然指的是…的原则。

必须在调用堆栈继续之前完成Synchronous方法/命令。

Asynchronous方法/命令(通常在线程/ AsyncTask中完成)并行继续,允许主执行线程继续。 (它可以在它自己的时间返回)

startActivity(intent)和startActivityForResult(intent)方法是非同步的,因为它们是非阻塞的,并允许执行线程在执行相应任务时继续执行。

startActivity(intent)startActivityForResult(intent)在这些方法立即返回而不启动Activity的意义上是异步的。 实际上,只有在当前Activity的生命周期事件结束后,它们才会安排Activity启动。

如果你有一些东西需要一些时间来完成,那么在第一个活动的onPause()方法中,新的Activity将很慢启动。

当您启动startActivityForResult您仍然执行异步调用。 您的调用者活动将被暂停,新的调用将在另一个进程中启动(如果它在另一个用户下运行)。

但是当被调用的活动终止设置结果时 ,您的活动将恢复,并且您将onActivityResult称为包含结果的回调。