同步和异步活动

Din*_*rma 13 android asynchronous synchronous android-activity

任何人都可以帮我理解Android中的同步异步活动吗?

Android中同步和异步活动的确切含义是什么?

StartActivity,StartSubActivityStartAcivityForResult同步或异步启动活动,或者它们可以以两种方式运行?

请解释,因为我已经阅读了很多文章,但未找到任何适当的解释.

Bru*_*ira 18

首先,Android上一次只能运行一个活动,因此您永远不会同时运行两个活动.使用startActivity()时要"射后不理",就是要推出一个活动,但不希望它的值返回到您的活动.在这种情况下,新活动将开始,您的活动将暂停; 一旦用户返回您的活动,您最终可能会重新获得控制权.

startActivityForResult()当您从正在启动的活动中选择结果时使用.在这种情况下,调用活动应该覆盖onActivityResult(),当启动的活动退出并返回给您(它设置的结果)时,将调用该活动setResult().

在这两种情况下,由于调用活动和被调用活动属于同一个任务,因此它在某种意义上是"同步的"(尽管我认为使用术语"同步"和"异步"在这种情况下可能会令人困惑).在被调用的活动完成之前,调用活动不会出现在屏幕上.

有用的阅读更多信息是:*http://developer.android.com/guide/topics/fundamentals/tasks-and-back-stack.html

- Bruno Oliveira(谷歌Android开发者关系部)

  • 同步意味着在某个任务完成之前执行不会继续.如果`startActivity`以这种方式工作,所有接口都将冻结,直到另一个活动正在运行.异步意味着您的任务将在未来的某个地方发生,并且同时继续执行:您请求启动一个Activity,并且您的代码将继续执行,因为它知道它最终会发生. (3认同)