【发布时间】:2011-07-18 13:30:01
【问题描述】:
我的应用程序有 24 个按钮来计算不同的车辆类型和方向(该应用程序将用于计算流量)。目前,每次按下按钮时,我都会将一行保存到 .csv 文件中。 csv文件包含时间戳、方向等。
我必须以 15 分钟的间隔测量每个按钮被按下的次数。
我应该如何存储按钮的计数器? 我只需要输出在 15 分钟内按下每个按钮的频率(每个按钮都有不同的标识标签)。
我在考虑使用 HashMap,它可以只将按钮的标签作为键,将出现的次数作为值,如下所示:
HashMap<String, Integer> hm = new HashMap<String, Integer>();
Integer value = (Integer) hm.get(buttonTag);
if (value == null) {
hm.put(buttonTag, 1);
} else {
int nr_occ = value.intValue() + 1;
hm.put(buttonTag, nr_occ);
}
但是,我不需要按钮按下的总和,而是 15 分钟的块。由于我已经将时间戳写入原始 csv 文件,我想知道如何存储这些值。
编辑:我目前正在测试 HashMap,它的计数效果非常好,但我发现了两个问题:首先,将其分组为 15 分钟的间隔,其次,hashmap 没有以任何方式排序.我需要输出按车辆类型和方向排序的值。
【问题讨论】:
-
您是指在使用应用程序时将计数器存储在内存中的方式吗?如果是这样,您是否还需要显示应用程序之前运行的计数器?
-
我只需要在应用程序使用时存储计数器,之前运行的计数器无关紧要。
-
@iDroid 当他们接到一个小时的电话并且活动被破坏时会发生什么?静态 int 再见。
-
@Emanuel 好的,用户碰巧点击了主页按钮......并不是说它实际上会,但在那时,即使只有一纳秒,您的活动也被标记为能够被系统。再次丢失任何未存储的活动数据。
-
有人想对序列化方法发表评论吗?在 SharedPreferences 中放置非首选项似乎很奇怪。
标签: java android csv hashmap counter