0

我正在使用 android 传感器,我不希望我的代码为每个传感器事件生成一个新对象。现在,我将数组中包含的值复制SensorEvent.values到我自己的Sample类值数组中。

我知道SensorEvents 被系统重用并且无法保留,但我想知道是否SensorEvent.values也被重用或者是否分配了新数组。实际上,如果无论如何都创建了一个新数组,那么将数组复制到我的数组中是没有意义的(我最好SensorEvent.values直接替换我自己的数组)。

我一直在看不同的帖子,比如帖子 1帖子 2,但它们处理的是SensorEvent对象而不是values字段本身。

4

2 回答 2

2

为了向未来的读者澄清,数组和对象SensorEvent.values一样被重用SensorEvent。因此,不应保留对它的任何引用,而应复制每个值。

于 2014-01-17T07:46:54.360 回答
0

如此处所示,它被声明为

public final float[] values;

所以数组不会被重新分配,它只是被重用——你必须克隆它。

于 2014-01-29T22:16:54.043 回答