0

ウェアラブル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());
4

1 に答える 1

1

この行を見ると:

Asset asset = Asset.createFromBytes(stream.toByteArray());

Asset インスタンスが への参照を持っていないことは明らかです。これは、ストリーム自体ではなく へのByteArrayOutputStream参照を受け取ったためです。byte[]そのため、その後は安全に閉じることができるはずです。

ただし、安全のために、 をflush()呼び出す前にストリームを実行できます (まだ実行していないtoByteArray()場合) 。compress()

于 2014-07-19T02:29:05.863 に答える