我想在android中编写一个服务,它将在后台跟踪数据使用情况。当捕获到数据使用事件时,我会将详细信息保存在本地数据库中。
我在 android 中阅读了有关 TrafficStats 类的信息,但它只会在活动开始时检查一次。我想要一个连续的后台进程运行。
我什至找到了一个示例项目 - https://github.com/commonsguy/cw-andtuning/tree/master/TrafficMonitor
如帖子中所述 - 如何衡量我的应用程序的数据使用情况
提前致谢。
我想在android中编写一个服务,它将在后台跟踪数据使用情况。当捕获到数据使用事件时,我会将详细信息保存在本地数据库中。
我在 android 中阅读了有关 TrafficStats 类的信息,但它只会在活动开始时检查一次。我想要一个连续的后台进程运行。
我什至找到了一个示例项目 - https://github.com/commonsguy/cw-andtuning/tree/master/TrafficMonitor
如帖子中所述 - 如何衡量我的应用程序的数据使用情况
提前致谢。
您需要执行以下操作:
创建将存储数据使用值的本地数据库。
启动一个连续/定期运行的服务来计算/重新计算数据使用量。
服务计算数据使用量后,将数据添加到您的数据使用量表中。
以下是如何启动服务在 Android 中创建服务
编辑
如果使用了任何新数据,则无法获得通知。您必须使用将连续或定期运行的服务定期检查它。
您可以使用以下代码来计算使用量:
int UID=Process.myUid();
long recived = TrafficStats.getUidRxBytes(UID);
long send = TrafficStats.getUidTxBytes(UID);
您可以根据需要使用的其他功能是:
long initialRX = TrafficStats.getTotalRxBytes();// recieved
long initialTx = TrafficStats.getTotalTxBytes();// sent
long initialMobRX = TrafficStats.getMobileRxBytes();
long initialMobTx = TrafficStats.getMobileTxBytes();
请记住,TrafficStats 返回一个累积值。因此,您必须减去初始值才能知道使用量的增量
每当进程被杀死时, TrafficStats计数器也会重置。例如,当手机关闭时。因此,您将不得不添加代码来处理它。