0

我有一个 android 应用程序来监视通过网络接收/传输的字节/数据包。我在文本视图中显示这些信息:

<TextView
            android:id="@+id/networkInfo"
            android:layout_below="@id/toggle_apn"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_centerInParent="true"
            android:layout_marginTop="20dp"
            android:background="@drawable/back"
            android:gravity="left"
            android:textSize="25dip"
            android:text="Not connected" />

然后通过java代码:

mStartRX = TrafficStats.getTotalRxBytes();
mStartTX = TrafficStats.getTotalTxBytes();
mStartPRX=TrafficStats.getTotalRxPackets();
mStartPTX=TrafficStats.getTotalTxPackets();

if (mStartRX == TrafficStats.UNSUPPORTED || mStartTX == TrafficStats.UNSUPPORTED) {
    ...
}else{
    mHandler.postDelayed(mRunnable, 1000);
}

mRunnable 运行方法是:

public void run() {
    TextView RX = (TextView)findViewById(R.id.networkInfo);
    long rxBytes = TrafficStats.getTotalRxBytes()- mStartRX;
long txBytes = TrafficStats.getTotalTxBytes()- mStartTX;
long rxPackets=TrafficStats.getTotalRxPackets()-mStartPRX;
    long txPackets=TrafficStats.getTotalTxPackets()-mStartPTX;

    RX.setText("Here I put the data above");
mHandler.postDelayed(mRunnable, 1000);
}

问题是,当我恢复我的活动时,我必须“调用”处理程序,并且字节数从 0 重新开始。如何在我的活动的整个生命周期中轻松地跟踪值?

4

1 回答 1

0

通过将 mstart 值保存到共享首选项中然后将它们恢复到“onResume”中来解决。

于 2013-04-19T08:46:42.453 回答