我的android学习<二>视图的控制者 Activity-->Activity间的通信(1)
一人难成大事,独木难造坚舟.那句说到烂,听到烦的话,团结就是力量.君不见成群结队的易做图可以横行于市?
APP市场就是一个社会,每个Acitivity就像一个一个活生生的人,由他们组成的一个个单位,就是一个一个的APP.一个好的APP需要由不同但又紧密联系的Activity组成,它们通信着,为的就是造一个好的APP.
下面,疑问来了.Activity间怎样通信呢?
一:通过第三方可持久化存储和读取.
举例说明:Activity_A 把数据写到某个XML文件,然后Activity_B去读XML文件.或者,Activity_B写数据,Activity_A读数据.
二:通过Intent传输
这样去说明吧:
情景一:你要写一封email(哥们不邀请他回复),首先你得新建一封伊妹儿,这个伊妹儿就是Intent,然后,你得在伊妹儿上写上对方的地址,怎样写呢,你可以调用setClass(),也可以调用setAction().好了,剩下就是把你想要写的东西写到伊妹儿上,这时,你只需要调用Intent.putExtra().然后,孩子点击发送吧,此时,你需要调用Acitivity.startActivity();
画面一转,来到收信方,那哥们首先要做的是去信箱拿到你写给他的伊妹儿,他要做的就是调用Activity.getIntent(),剩下的他就是看信,这里不细表.
情景二:你还是要写一封伊妹儿(这次哥们需要她回信),首先,还得新建一伊妹儿,同样的,此伊妹儿为Intent,然后你得在信封写上对方的地址,你依然要调用Intent.setClass()或则Intent.setAction().把想写的写到伊妹儿后,孩子,点击发送吧,哦,不,因为你还想他回复,在点击发送前,你还得写上你的邀请,此时,你得调用Activity.startActivityForResult(Intent mintent , int requesCode).这里requestCode就是邀请码.
画面还是一转.来到收信方.那哥们,同样还是先打收信箱那里收你写给他的伊妹儿,那哥们看到你的回复邀请,于是他点击回复,这时,他不需要再填写地址了,但是,他有前言万语,因此,他有可能很多的回复,为了区别这些回复,他得为此做标记,因此,在点击回复的时候,他调用了Activity.setResult(Intent mIntent, int resultCode),这里,resultCode就是回复标记,而Intent就是回复的内容.
画面再次一转,你在收信箱OnActivityResult(int requestCode , int resultCode,Intent data)接收回复.因为你写了很多封有邀请回复的伊妹儿,所以,在收信箱那里,它会以邀请码去区分,这是谁回复的,而resultCode就是第几个回复,当然Intent就是回复的内容.
到这里,完整的一次通信,就结束了.
作者:xianming90
补充:移动开发 , Android ,