Android中startActivityForResult()的机制是什么?

Pat*_*ric 7 multithreading android

我有一项活动.在此活动中,我想使用startActivityForResult()启动另一个活动.据我所知,我的基本活动是在一个主GUI线程的进程中启动的.但据我所知,startActivityForResult()是异步的,这意味着我的新活动将在不同的线程中执行.我无法找到有关内部线程的信息.如果只有一个GUI线程,这些函数如何异步工作?

Com*_*are 5

但据我所知,startActivityForResult()是异步的,这意味着我的新活动将在不同的线程中执行.

startActivityForResult()是异步的.这并不意味着您的新活动将在不同的线程中执行.如果新活动是您自己的应用程序的一部分,它将在主应用程序线程上运行,就像您的所有其他活动一样.

如果只有一个GUI线程,这些函数如何异步工作?

startActivityForResult(),就像startActivity(),不会立即做任何事情.相反,它将消息放入消息队列,然后返回.当您将控制权返回给Android(例如,您的onClick()方法结束)时,Android会返回处理该队列之外的消息.当它到达您的开始活动消息时,它会启动新活动.