我想计算一个月内我的应用的网络使用量/网络流量统计数据。
我可以使用TrafficStats来提供网络流量统计信息,但此类返回的统计信息会在每次重新启动后重置并从零开始。我考虑将统计信息存储在存储中,但我想采用另一种方式。
所以我更改为使用NetworkStatsManager进行计算,但大多数方法都需要API> = 23.
那么我怎么能用低于23的api做到这一点?谢谢。
答案 0 :(得分:2)
您应该以某个时间间隔保留sqlite
中的流量统计数据。并使用关闭之前存储最后一次读数
广播接收者中的行动android.intent.action.ACTION_SHUTDOWN
。重新启动后,您应该再次开始存储数据。这样,您就不会丢失数据。该解决方案适用于所有Android版本。
答案 1 :(得分:1)
我可以使用TrafficStats提供网络流量统计,但是 此类返回的统计信息重置并从零开始 每次重启。
如何将此数据存储在某处?例如。在SharedPreferences,SQLite数据库或其他地方。之后,您的数据将在重新启动后保留,您可以累积计算结果。
答案 2 :(得分:-1)
即使我们将数据保存在sqlite中,也不必在关闭设备后将值重置为零。在这种情况下,是否要使用我们在重置后得到的值添加先前存储的字节会产生混淆,因为关闭后该值并不总是为零。