Статистика сети Android: простой способ получить информацию о пакете отправлено / получено

У меня есть приложение для 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. Как я могу легко отслеживать значения в течение всей жизни моей деятельности???

1 ответ

Решение

Решается путем сохранения значений mstart в общих настройках, а затем возобновления их в "onResume".

Другие вопросы по тегам