ハンドラを使用して1秒あたりのセルラデータレートを計算すると、コードが毎秒実行され、全体のトラフィックが計算されました。起動後の現在のトラフィックは1秒あたりの現在のデータレートを取得します。1秒あたりのデータレートを計算しますが、結果は常に同じです
現在のデータレートの値が正しくないという問題があります。これは、ブート以降、常に全体的なトラフィック全体を示しています。私は何か間違っていたかもしれない、私はまだアンドロイドで初心者です。以下のコード。
パブリッククラスMainActivityがAppCompatActivity {
private double RXOld;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
final Handler handler = new Handler();
handler.postDelayed(new Runnable() {
@Override
public void run() {
////////////////////////Code to be executed every second////////////////////////////////////////
Calendar c = Calendar.getInstance();
int seconds = c.get(Calendar.SECOND);
double overallTraffic = TrafficStats.getMobileRxBytes();
double currentDataRate = overallTraffic - RXOld;
TextView view1 = null;
view1 = (TextView) findViewById(R.id.view1);
view1.setText("Current Data Rate per second= " + currentDataRate);
double RXOld = overallTraffic;
handler.postDelayed(this, 1000);
}
}, 1000);
}
'ダブルRXOld = overallTrafficあたりの現在のデータレートを与えるものと整流後の新しいコード;' ... Javaの基本...フィールド対ローカルVARそれが動作 – Selvin