Java 这个SharedReferences代码在Android中做什么?

Java 这个SharedReferences代码在Android中做什么?,java,android,Java,Android,我了解SharedReferences的功能,但仍在努力了解这段代码的功能 SharedPreferences sharedPref = PreferenceManager.getDefaultSharedPreferences(getActivity().getApplicationContext()); if (sharedPref.getBoolean("login", false)) { edtUser.setText(sharedPref.getString("user",

我了解SharedReferences的功能,但仍在努力了解这段代码的功能

SharedPreferences sharedPref = PreferenceManager.getDefaultSharedPreferences(getActivity().getApplicationContext());

if (sharedPref.getBoolean("login", false)) {

    edtUser.setText(sharedPref.getString("user", ""));
    edtPass.setText(sharedPref.getString("pass", ""));

    new SigninTask().execute("user=" + edtUser.getText(), "pass=" + edtPass.getText());
}
我知道第一行是访问默认的SharedReferences文件。然而我仍然很困惑,这套代码到底是做什么的?。它想得到什么信息?。最后一行是做什么的?(new SigningTask())..

SharedRef.getString(“用户”,即“”)
尝试从SharedReferences中使用键
user
获取首选项。如果找不到,则返回一个空字符串。该值被加载到文本控件(我假设,因为您没有包含
edtUser
的定义)。 对
pass
的值也是如此,它可能表示密码

基本上,此应用程序可能会在SharedReference中存储应用程序用户在上一次启动应用程序时输入的
用户
密码
,因此用户不必在每次启动应用程序时再次输入


应该有额外的代码将输入的
user
pass
存储在SharedReferences中,并使用值
true

行new signTask()存储
login
首选项。执行()创建扩展AsyncTask的SigninTask类的新实例,并进行调用以告诉它应该开始执行,执行调用中的变量是传递给AsyncTask类以在执行期间使用的参数。完美。代码edtUser.setText(sharedPref.getString(“user”和“));从共享preff获取“user”infoo并将其存储在edtUser?中,代码“user=“+edtUser.getText()获取存储在edtUser?中的数据。抱歉,最后一件事。代码if(sharedPref.getBoolean(“login”,false))。是否检查密钥登录是否为false或true。这意味着登录密钥?@AndiodIB中没有关于“user=“-yes”的数据。关于getBoolean,如果它在SharedReferences中找到一个值为“true”的“login”键,则假定它可以找到“user”和“pass”键的数据。如果它得到“false”,则表示SharedReferences中没有该键的值(这导致它返回默认值-false),或者该值为“false”。因此,如果它为false,则不会执行其余代码。