我正在尝试将BIZ_DATE AMT TRANS_ID PRIOR_TRANS_ID
2015-05-17 159 8086 8085
2015-05-17 159 9088 9087
项目合并到我的应用中,而且我总是遇到一些奇怪的问题。
我的应用需要从实时数据中绘制图表。我有提供数据的所有通信的线程。在主线程中,我正在读取此数据,只需使用Android GraphView
,其中counter是int,在每次更新后递增。
mSeries1.appendData(new DataPoint(counter,data[0]),true,100);
块或将代码行更改为synchronized
,但结果仍然相同。
这是应用程序运行期间和冻结时内存的样子:
有没有人知道这里可能有什么问题?
编辑:
这是我目前更新图表视图的方法:
mSeries1.appendData(new DataPoint(counter,counter),true,100);
答案 0 :(得分:1)
也许已经太晚了,但我遇到了类似的问题,最后我发现当GraphView附加一个新的数据" NaN"冻结。
因此,请检查结果为NaN的情况,例如除以零或类似的情况。
答案 1 :(得分:0)
虽然您没有指定添加点的速率,以及应用程序在没有崩溃的情况下运行多长时间,但您应该预期某些事情会出错(您可能会生成无限数量的点对象,而记忆确实有限。)
您是否需要获得应用从一开始就收到的所有积分?如果没有,你可以实现一种循环缓冲区,它只保留“提供者线程”生成的X最后一个值,并在每次使用方法
接收到新值时更新图形。your_series.resetData( dataPoint[] my_circular_buffer_of_data_points );
This thread与您的问题非常相似,请看一下!