2013-05-26 44 views
0

在Android中记录快速更新数据的最佳方式是什么?记录快速更新数据的最佳方式(Android)

在我的具体示例中,我试图在onSensorChanged触发时(加速度)常常记录各种数据花絮。对于一些快速处理和显示来说很好,但更多的事情(绘图或记录数据)使其变得相当慢。值得注意的是,我将它存储在一个变量中而不是文件中。

建议您尽量少做在onSensorChanged,所以我尝试了以下内容:

  • IntentService:取你想记录和它的所有存储在该数据的其余部分变量。 结果:即使意图服务在其自己的线程中执行,但一次只能运行一个。因此数据看起来比它可以处理得更快,并且最终会有一长串数据被处理,从而产生一个长期而持续的GC_FOR_ALLOC流。最终使其成为不错的选择
  • AsyncTask中获取要记录的额外数据,然后启动IntentService将其记录到变量中。 结果:与上面几乎相同。

总的来说这两种方法糟糕不止做额外的数据获取和给onChanged记录,以及消耗显著更多的权力实际上执行显著。我一直无法找到关于快速数据存储的具体建议。缓冲区或缓存可能会更有效吗?

回答

0

经过一些调试并尝试使用不同的数据结构来存储快速更新的数据后,事实证明,使用IntentService工作得很好。用O(n)从添加新元素的ArrayList改为添加新值到O(1)的自定义LinkedList,造成了巨大的差异。由于LL能够更快地处理数据,因此记录待处理值的大量队列的问题基本消失。

相关问题