繁体   English   中英

Android Wear Close位图资产底层流

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM