如何以编程方式监视Android设备可用空间

时间:2017-06-01 15:01:18

标签: android

我想更新并向用户显示我的设备的可用空间,我尝试了很多方法但没有任何效果,我使用的每个方法似乎只在应用程序启动时显示一次内存,但是比这些方法的每次调用都打印了相同的价值,没有更新 目前我正在使用这种方法

public long getfreeMemory() {
    StatFs statFs = new StatFs(Environment.getRootDirectory().getAbsolutePath());
    return (long) (statFs.getAvailableBlocks() * statFs.getBlockSize());
}

public void checkAppMemory() {
    Log.e("MEMORY", getfreeMemory() + "");
    memoryHandler_.postDelayed(new Runnable() {
        public void run() {
            checkAppMemory();
        }
    }, (int) (CHECK_MEMORY_FREQ_SECONDS * 1000));
}

我只是想检测一下,当没有可用的免费存储空间时,我正在使用BroadCastReceiver,但是一台设备(三星s4 os 4.4.2)没有启动内存低事件

2 个答案:

答案 0 :(得分:2)

getRootDirectory()的内容不太可能改变,因为该分区是只读的。

如果要监控可用空间,则必须在分区上选择一个对您而言重要的文件,例如getFilesDir()以查找internal storage上的可用空间。

答案 1 :(得分:-1)

您可以使用以下行:

getApplicationContext().getExternalFilesDir(null)
相关问题