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

标签 android multithreading asynchronous android-activity synchronous

如果异步线程是独立于主线程运行且不干扰主线程的线程...

一个新的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/

相关文章:

android - 多级 ExpandableListView 中的项目并不总是可点击

c++ - 多线程减慢程序 : no False-sharing, 没有互斥锁,没有缓存未命中,工作量不小

c++ - 通过惰性求值使 Meyers 的 Singleton 线程安全快速

C# 5.0 async/await 功能和 Rx - Reactive Extensions

c++ - 无限执行boost asio async_read_until

android - 没有这样的属性 : ABI for class: org. gradle.api.tasks.OutputFile

java - 键盘隐藏 BottomSheetDialog

c - 将参数作为空指针传递给 OS-iii 中的新线程

c# - 与 Web 服务相关的同步与异步

android - 添加 BaseGamesUtils 导致 gradle 不同步