一、Intent传递HashMap
参考:https://blog.youkuaiyun.com/xueerfei008/article/details/23046341
HashMap本身已经实现了Cloneable/Serializable,Intent传递时,直接强转就可以了。
Map<String, String> map = new HashMap<>();
map.put("key", "value");
Intent intent = new Intent(this, SecondActivity.class);
intent.putExtra("map_key",(Serializable)map);
二、Intent传递Bitmap
网上有很多将Bitmap转为一个byte数组然后传的,这种方式容易造成应用崩溃。
因此注意:不要用Intent传递大量的数据,包括Bitmap
解决方案:
① 本地资源只传递R.id,然后通过resource去解析出来;
② 如果是SDCard中的文件,只传递Uri;
③ 如果是网络流,先本地保存图片,然后再传递路径Uri
三、Intent传递Uri
参考:https://blog.youkuaiyun.com/u012246458/article/details/79625364
Android页面之间传递不提供传递Uri类型,但是如果需要跨页面传递图片,或需要把相册或者相机的Uri传递的,则有了该需求。
传出页面:
private Uri imageUri;
....
Intent intent = new Intent(this, SecondActivity.class);
intent.putExtra("imageUri", imageUri.toString());
startActivity(intent);
传入页面:
String strUri = getIntent().getStringExtra("imageUri")
Uri imageUri = Uri.parse(strUri );