[英]Android Wear Close Bitmap Asset Underlying Stream
我有创建一个PutDataRequest
代码,以将Bitmap
与可穿戴设备同步。 我的问题是,我是否需要在下面的代码中关闭ByteArrayOutputStream
,还是DatApi
需要它保持打开状态?
我很确定需要关闭它。 只是有脑筋急转弯的时刻。
PutDataMapRequest putRequest = PutDataMapRequest.create(path);
DataMap map = putRequest.getDataMap();
ByteArrayOutputStream stream = new ByteArrayOutputStream();
b.compress(Bitmap.CompressFormat.PNG, 100, stream);
Asset asset = Asset.createFromBytes(stream.toByteArray());
map.putAsset(mapKey, asset);
Wearable.DataApi.putDataItem(connection.getClient(), putRequest.asPutDataRequest());
通过查看以下行:
Asset asset = Asset.createFromBytes(stream.toByteArray());
很明显,Asset实例没有引用ByteArrayOutputStream
,因为它收到了对byte[]
的引用,而不是对流本身的引用。 因此,在那之后,您应该可以安全地关闭它。
为了安全起见,您可以在调用toByteArray()
之前flush()
流toByteArray()
如果compress()
尚未这样做compress()
。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.