如果异步线程是独立于主线程运行且不干扰主线程的线程...
一个新的Activity
通过startActivity(intent)
启动后是否不占用主线程?
我读到的大部分内容都说这些都是异步的,但是有相当多的相互矛盾的答案,而且说这句话的人并没有真正给出令人信服的论据。
因此,如果有人对此有清楚的认识并能解释为什么它们是同步/异步的,我将非常感激!
干杯
编辑:所以我从这两个好人和网上的一些东西中得出的答案......
将 Activity 带入同步/异步的混合中可能会导致大量的负载出现。但它仍然是指...的原则。
同步
方法/命令必须在调用堆栈继续之前完成。
异步
方法/命令(通常在线程/AsyncTask 中完成)并行继续,允许执行的主线程继续。 (它可以在自己的时间返回)
startActivity(intent)
和 startActivityForResult(intent)
方法是异步的,因为它们是非阻塞的,并且允许执行线程继续执行相应的任务好吧。
最佳答案
startActivity(intent)
和 startActivityForResult(intent)
是异步的,因为这些方法在不启动 Activity 的情况下立即返回。实际上,他们安排一个 Activity 仅在当前 Activity 的生命周期事件完成后启动。
要点是,如果你有一些需要一些时间来完成的东西,在第一个 Activity 的 onPause()
方法中,新的 Activity
会很慢开始。
关于android - 有人可以解释一下 startActivity(intent) 和 startActivityForResult(intent) 是如何异步的吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13919201/