我如何刷新memInf.availMem的值?

时间:2015-09-18 23:35:48

标签: android activity-manager

我不明白为什么memInf.availMem的值在第一次读取后总是相同的。 例如:当我启动我的应用程序时,该值为0.441 GB,但经过多次刷新计时器后,它始终是相同的。

我如何刷新价值?在几分钟内使用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
    );

P.S:计时器工作,因为Sistem.out.println(c)每秒在我的logcat中写入值。

编辑:我添加了部分代码

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

1 个答案:

答案 0 :(得分:1)

假设memInfActivityManager.MemoryInfo的一个实例,您需要call getMemoryInfo() on ActivityManager更新每个memInf来电{1}}。