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