Android 有人能解释一下startActivity(意图)和startActivityForResult(意图)是如何异步的吗?
如果异步线程是一个独立于主线程运行且不干扰主线程的线程 新的Android 有人能解释一下startActivity(意图)和startActivityForResult(意图)是如何异步的吗?,android,multithreading,asynchronous,android-activity,synchronous,Android,Multithreading,Asynchronous,Android Activity,Synchronous,如果异步线程是一个独立于主线程运行且不干扰主线程的线程 新的活动在通过startActivity(intent)启动后是否没有占用主线程 我在这篇文章中读到的大部分内容都说这两者都是异步的,但是有相当多的相互矛盾的答案,说这句话的人并没有给出令人信服的论据 因此,如果有人能清楚地理解这一点,并能解释为什么它们是同步/异步的,我将非常感激 干杯 编辑:所以我从这两个好人和一些网上的东西中得到了答案 将活动引入同步/异步的混合中可能会导致大量的马匹。但它仍然是指……的原则 Synchronous方法
活动
在通过startActivity(intent)
启动后是否没有占用主线程
我在这篇文章中读到的大部分内容都说这两者都是异步的,但是有相当多的相互矛盾的答案,说这句话的人并没有给出令人信服的论据
因此,如果有人能清楚地理解这一点,并能解释为什么它们是同步/异步的,我将非常感激
干杯
编辑:所以我从这两个好人和一些网上的东西中得到了答案
将活动引入同步/异步的混合中可能会导致大量的马匹。但它仍然是指……的原则
Synchronous
方法/命令必须在调用堆栈继续之前完成
Asynchronous
方法/命令(通常在线程/asynchtask中完成)并行继续,允许主线程继续执行。(它可以在自己的时间内返回)
startActivity(intent)
和startActivityForResult(intent)
方法是异步的,因为它们是非阻塞的,并且允许执行线程在执行相应任务的同时继续执行。startActivity(intent)
和startActivityForResult(intent)
是异步的,因为这些方法在不启动活动的情况下立即返回。实际上,他们将活动安排为仅在当前活动的生命周期事件完成后启动
如果您有需要一些时间才能完成的任务,那么在第一个活动的
onPause()
方法中,新的活动的启动速度会很慢。当您startActivityForResult
时,您仍然执行异步调用。调用方活动将被挂起,新进程将在另一个进程中启动(如果它在其他用户下运行)
但是,当被调用的活动终止时,您的活动将继续,您将作为包含结果的回调被调用。不完全如此。startActivity计划在稍后某个时间在UI线程上运行新活动。它是异步的,因为它不会立即启动,方法会立即返回。啊,谢谢!谢谢你的帮助!如果你想创造一个答案,我会接受它的完美和紧凑的答案!也可能是startActivity(Intent)本身调用了onPause()。我在这里推测,但从您的答案来看,异步性并不适用。实际上我要检查一下这个呼叫是否是同步的。