Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/193.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 当应用程序被强制关闭时,首选项被清除_Android - Fatal编程技术网

Android 当应用程序被强制关闭时,首选项被清除

Android 当应用程序被强制关闭时,首选项被清除,android,Android,我正在制作一个应用程序,我想在其中实现登录。我正在SharedReference中保存用户密码,它存储正确,工作正常。但当我强制关闭应用程序时,首选项被清除。当用户按下okey按钮时,我将密钥保存在以下代码中 case R.id.bOkey: if (sp.contains(KEY_PASSWORD)) { Toast.makeText(getApplicationContext(), "contains the key", Toast.L

我正在制作一个应用程序,我想在其中实现登录。我正在
SharedReference
中保存用户密码,它存储正确,工作正常。但当我强制关闭应用程序时,首选项被清除。当用户按下okey按钮时,我将密钥保存在以下代码中

case R.id.bOkey:
            if (sp.contains(KEY_PASSWORD)) {
                Toast.makeText(getApplicationContext(), "contains the key", Toast.LENGTH_LONG).show();
                if (sp.getString(KEY_PASSWORD, null).equals(etPassword.getText().toString())) {
                    Toast.makeText(getApplicationContext(), "Login Success", Toast.LENGTH_LONG).show();
                }else{
                    Toast.makeText(getApplicationContext(), "Login Failed", Toast.LENGTH_LONG).show();
                }
            }else{
                Toast.makeText(getApplicationContext(), "Does not contains the key", Toast.LENGTH_LONG).show();
                sp.edit().putString(KEY_PASSWORD, etPassword.getText().toString()).commit();
            }
            break;

提前谢谢-Usman Riaz-

您也应该在暂停()时保存持久数据,因为您完全确定您的应用程序在关闭前会切换到暂停状态。

所以士气是“总是在onPause()方法上保存数据”。

我在某个地方读到链接共享引用(总是)不起作用,试着不要链接链接共享引用的方法@MarkoNiciforovicIt没有回答您的问题,但出于安全原因,您确实不应该将用户的密码保存为明文形式的共享引用。您至少应该对其进行加密,否则用户密码可能会被泄露。sp.edit().putString(key,key.commit();应该是全新的。如果失败了,也试试看