1.putExtra()
适合传递单个数据的场景,如一个字符串,一个id,一个对象等;
intent.putExtra("author":"insong不二");
2. putExtras()
用于传递多个数据的场景。例如只是传递用户id和订单id供接收方调用(可能用于查询接口等操作):
bundle.putInt("order_id",12345);
bundle.putInt("u_id",22);
intent.putExtras(bundle);
那么问题来了,如果要传递的字段很多,而且刚好是一个对象,例如选定好友列表中的某个好友对象,然后传递该对象。
思路一:传递name和age过去,在intent接收方重新构造friend;
假如这个对象有两个属性,还可以传递两个属性一个个putExtras传递过去,如果有10个呢?或者目前只有两个,以后随着需求增长到10个呢?这种放法就很明显要较大改动代码。
思路二:传递一整个person过去,这需要进行序列化,可用Serializable和Parcelable或者JSON传递。传送门:简书作者ghwaphon写的 Android -- Intent传递对象的三种方法
结论:
考虑到拓展性,即使现在是传递单个数据,未来也可能传递多个数据,为了代码的统一性,方便后人接手或者N个月后的自己还能看懂代码(其实insong不二就是懒);不二一般是统一使用putExtras();eg:
bundle.putInt("id",1);
bundle.putString("author","insong不二");
bundle.putSerializable("friend",friend);//以后拓展friend里面的字段无需修改这
//....以后相加与上面不相关的直接这里往下不断加
intent.putExtras(bundle);