2015-09-18 23 views
0

我不明白爲什麼memInf.availMem的值在第一次讀取後總是相同。 例如:當我啓動我的應用程序時,值爲0.441 GB,但在多次刷新計時器後,它始終是相同的。我怎樣才能刷新memInf.availMem的價值?

我該如何刷新價值?在幾分鐘內使用RAM是不可能的。

這是我真正的代碼以刷新值(但不工作):

int startUp = 2000;  // millisecondi di attesa per fare partire il timer 
    int periodo = 1000;  // millisecondi di attesa per la ripetizione del timer 

    Timer timer = new Timer();  //timer 

    //il metodo run viene eseguito ad ogni scadenza del timer 
    timer.scheduleAtFixedRate(
      new TimerTask() { 
       String c; 
       public void run() { 
        c = String.valueOf(roundTreDecimali(memInfo.availMem/1073741824.0)) + " GB"; 
        getActivity().runOnUiThread(new Runnable() { 
         @Override 
         public void run() { 
          freeram.setText(c); 
          System.out.println(c); 
         } 
        }); 
       } 
      }, 
      startUp, periodo 
    ); 

PS:定時器的工作,因爲Sistem.out.println(三)我logcat中的值寫入每一秒。

編輯:我已經將我的代碼

actManager = (ActivityManager) getActivity().getSystemService(getActivity().ACTIVITY_SERVICE); 
    memInfo = new ActivityManager.MemoryInfo(); 
    actManager.getMemoryInfo(memInfo); 

回答