流量统计在启动时重置

时间:2015-02-11 14:13:20

标签: android network-traffic

您好我正在尝试使用以下代码来使用每个Android应用程序。

PackageManager packageManager = getActivity().getPackageManager();
    List<PackageInfo> applist = packageManager.getInstalledPackages(0);
    Iterator<PackageInfo> it = applist.iterator();

    while (it.hasNext()) {
        PackageInfo pk = (PackageInfo) it.next();
        if (pk.versionName == null) {
            continue ;
        }
        double received = (double) TrafficStats.getUidRxBytes(pk.applicationInfo.uid)

                / (1024 * 1024);
        double send = (double) TrafficStats.getUidTxBytes(pk.applicationInfo.uid)
                / (1024 * 1024);
        double total = received + send;
        textview.setText(pk.applicationInfo.loadLabel(
                                    getActivity().getPackageManager())
                                    .toString() + " " +String.format( "%.2f", total )+" MB");
    } 

但是如果设备重新启动,则值将被删除。但是在设备中,如果你去Android设置 - &gt;数据使用 - &gt;用法仍然存在。我的问题是

  

从哪里读取每个应用程序的数据使用情况。 ?

代码说明很有帮助。感谢。

1 个答案:

答案 0 :(得分:0)

TrafficStats.getUidRxBytes(int)仅返回设备启动时的数据使用情况。为什么不尝试将流量数据写入文件,以便在启动后可用?您可以构建一个START_REDELIVER_INTENT服务以在后台运行