Android中的同步和异步活动到底意味着什么?
StartActivity
, StartSubActivity
和StartAcivityForResult
是同步还是异步启动活动,还是它们可以以两种方式运行?
请解释,因为我已经阅读了很多文章,但未find任何适当的解释。
首先,Android上一次只能运行一个活动,因此您永远不会同时运行两个活动。 当您想要“发射并忘记”时,请使用startActivity()
,也就是说,您希望启动一个活动,但不希望它为您的活动返回一个值。 在这种情况下,新活动将开始,您的活动将暂停; 一旦用户返回您的活动,您最终可能会重新获得控制权。
当您从正在启动的活动中取消结果时,请使用startActivityForResult()
。 在这种情况下,调用活动应该覆盖onActivityResult()
,当启动的活动退出并返回给你(它使用setResult()
设置的结果)时将调用它。
在这两种情况下,由于调用活动和被调用活动在同一个任务中 ,它在某种意义上是“同步的”(尽管我认为使用术语“同步”和“异步”在这种情况下可能会令人困惑)。 在被调用的活动完成之前,调用活动不会出现在屏幕上。
有用的阅读更多信息是:* http://developer.android.com/guide/topics/fundamentals/tasks-and-back-stack.html
– Bruno Oliveira(谷歌Android开发者关系部)