startActivityForResult()的作用
相信很多人使用过startActivity(Intent intent)方法,调用该方法后,将会向目标activity跳转,但是该跳转只是单纯地跳转,并没有携带任何请求码。而startActivityForResult(Intent intent,int requestcode)的作用其实跟startActivity(Intent intent)相似,不同的是startActivityForResult()是带有请求码(请求码的作用主要是帮助activity判断来源)的跳转,跳转完成之后将会将requestcode传递给 onActivityResult(int requestCode,int resultCode,Intent data)。
startActivity()是发消息给谁?
答案是ActivityManagerService这个服务,而这个服务驻留在系统进程SystemServer中,之前的文章谈过,一个进程可以驻留多个服务,比如SystemServer这个进程包含了ActivityManagerService、PackageManagerService、WindowManagerService、PowerManagerService等很多个系统服务。因此,startActivity()是发消息给SystemServer进程,而进程间通信的方法正是安卓世界强大的Binder机制。