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

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

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

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

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

干杯

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

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

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

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

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

  • 当重试策略设置为0时,Android Volley向服务器发出2个请求
  • 是否连续暂停/停止和启动/恢复Java TimerTask?
  • 如何在Android中有效管理多个异步任务
  • 知道ListView中的View何时离开屏幕?
  • 适用于Android的AFNetworking
  • 同步和异步活动
  • 如何使用Square的Retrofit网络库实现异步回调
  • Android如何在其他类中运行OnUiThread?
  • startActivity(intent)startActivityForResult(intent)在这些方法立即返回而不启动Activity的意义上是异步的。 实际上,只有在当前Activity的生命周期事件结束后,它们才会安排Activity启动。

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

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

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