2013-05-26 71 views
0

在Android中記錄快速更新數據的最佳方式是什麼?記錄快速更新數據的最佳方式(Android)

在我的具體示例中,我試圖在onSensorChanged觸發時(加速度)常常記錄各種數據花絮。對於一些快速處理和顯示來說很好,但更多的事情(繪圖或記錄數據)使其變得相當慢。值得注意的是,我將它存儲在一個變量中而不是文件中。

建議您儘量少做在onSensorChanged,所以我嘗試了以下內容:

  • IntentService:取你想記錄和它的所有存儲在該數據的其餘部分變量。 結果:即使意圖服務在其自己的線程中執行,但一次只能運行一個。因此數據看起來比它可以處理得更快,並且最終會有一長串數據被處理,從而產生一個長期而持續的GC_FOR_ALLOC流。最終使其成爲不錯的選擇
  • AsyncTask中獲取要記錄的額外數據,然後啓動IntentService將其記錄到變量中。 結果:與上面幾乎相同。

總的來說這兩種方法糟糕不止做額外的數據獲取和給onChanged記錄,以及消耗顯著更多的權力實際上執行顯著。我一直無法找到關於快速數據存儲的具體建議。緩衝區或緩存可能會更有效嗎?

回答

0

經過一些調試並嘗試使用不同的數據結構來存儲快速更新的數據後,事實證明,使用IntentService工作得很好。用O(n)從添加新元素的ArrayList改爲添加新值到O(1)的自定義LinkedList,造成了巨大的差異。由於LL能夠更快地處理數據,因此記錄待處理值的大量隊列的問題基本消失。

相關問題