/* Copyright 2012-2013, Polyvi Inc. (http://polyvi.github.io/openxface) This program is distributed under the terms of the GNU General Public License. This file is part of xFace. xFace is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. xFace is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with xFace. If not, see <http://www.gnu.org/licenses/>. */ package com.polyvi.xface.extension.trafficstats; import android.net.TrafficStats; /** * 流量统计的基类,记录了上一次统计时的总流量和某种连接状态下的流量统计数据 */ public abstract class XTrafficStatsBase { /**记录上一次统计时的总流量,包括Wifi、Mobile、NoNetWork */ protected long mLastTotalTraffic; /**记录某种连接状态下的流量统计数据 */ protected long mTrafficData; /**应用唯一表示符 */ protected int mUID; public XTrafficStatsBase(int uid) { mUID = uid; } /** * 获取流量统计数据 * @return */ public long getTraffic() { return mTrafficData; } /** * 更新上一次统计时的总流量 * @param totalTraffic */ public void updateTotalTraffic(long totalTraffic) { mLastTotalTraffic = totalTraffic; } /** * 更新上一次统计时的总流量和某种连接状态下的流量统计数据 */ public void updateTraffic() { long totalRev = TrafficStats.getUidRxBytes(mUID); mTrafficData += (totalRev - mLastTotalTraffic); updateTotalTraffic(totalRev); } }