如何在Android中比较两个数字?

脂肪B00b

long A当您打开我的应用程序时,我的代码将获取文件夹的大小并将其存储在中在第二次打开它时,它将执行相同的操作,但是将其存储在中long B之后,应该将旧大小与新大小进行比较,通过这样做,我可以确定文件是否已被修改或调整。

private long A;
private long B;
private boolean AorB = true;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);

    File file = new File(Environment.getExternalStorageDirectory().getPath() + "/X ADB/");
    long size = getFolderSize(file);
    Toast.makeText(getApplicationContext(), String.valueOf(size), Toast.LENGTH_LONG).show();

    // store size in A and then B and then A and so on
    if (AorB == true) {
        // assign value to A
        A = getFolderSize(file);
        AorB = false;
    } else {
        // assign value to B
        B = getFolderSize(file);
        AorB = true;
    }
    // compare old size with new size
    if (A == B) {
        Toast.makeText(getApplicationContext(), "equal", Toast.LENGTH_LONG).show();
    } else {
        Toast.makeText(getApplicationContext(), "unequal", Toast.LENGTH_LONG).show();
    }
}

// get directory size
public static long getFolderSize(File dir) {
    long size = 0;
    for (File file : dir.listFiles()) {
        if (file.isFile()) {
            size += file.length();
        } else
            size += getFolderSize(file);
    }
    return size;
}

}

真正的问题是,我的吐司总是说不平等,每次我打开应用程序时,我什至没有更改或修改任何会影响大小的文件。我该如何解决?

纽创实验室

关闭应用程序时,请使用SharedPreference保留该值。

// Don't forget to define the variable. 
// You may use whatever name you like.
private static final String MY_PREFS_NAME = "my_shared_pref";

保存数据

SharedPreferences.Editor editor 
       = getSharedPreferences(MY_PREFS_NAME, MODE_PRIVATE).edit();
editor.putLong("size", size);
editor.commit();

载入资料

SharedPreferences prefs = getSharedPreferences(MY_PREFS_NAME, MODE_PRIVATE); 
long loadedSize = prefs.getLong("size", 0); 

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章