我有一个 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 重新开始。如何在我的活动的整个生命周期中轻松地跟踪值?