gpt4 book ai didi

android - 无法在 AsyncTask 中设置 SharedPreferences?

转载 作者:行者123 更新时间:2023-11-29 15:18:19 26 4
gpt4 key购买 nike

我正在尝试在我的异步任务中设置共享首选项,但它似乎不起作用。谁能帮帮我。我已经尝试了十亿种东西

按钮/异步代码:

    button.setOnClickListener(new OnClickListener(){
private ProgressDialog cancelDialog = null;
int valid;

@Override
public void onClick(View arg0) {
new AsyncTask<Void, Void, Void>() {
@Override
protected Void doInBackground(Void... params) {
valid = api.validateLogin(username.getText().toString(), password.getText().toString());
return null;
}


@Override
protected void onPreExecute() {
cancelDialog = new ProgressDialog(LoginActivity.this);
cancelDialog.setMessage("Validating Username & Password");
cancelDialog.show();

super.onPreExecute();
}

@Override
protected void onPostExecute(Void result){
cancelDialog.cancel();
if(valid == 2){
SharedPreferences savedSession = getApplicationContext().getSharedPreferences("xdaeaf", Activity.MODE_PRIVATE);
savedSession.edit().putString("username", username.getText().toString());
try {
String passtext = MCrypt.bytesToHex(mcrypt.encrypt(password.getText().toString()));
savedSession.edit().putString("password", ""+passtext);
savedSession.edit().commit();
} catch (Exception e) {
e.printStackTrace();
//TODO:
}

//TODO:
}else{
//TODO:
}

super.onPostExecute(result);
}

}.execute();
}
});

我的访问代码:

    SharedPreferences savedSession = context.getSharedPreferences("xdaeaf", Activity.MODE_PRIVATE);
String username = savedSession.getString("username", "");
String password = savedSession.getString("password", "");
System.out.println("username:"+username+" password:"+password);

我检查了我是否将空变量传递给 putSTring 但它正在向它传递值。它只是不节省。当我重新运行访问代码时,它只打印出“用户名:密码:”。尝试重新访问时,值为空。

最佳答案

savedSession.edit().putString("username", username.getText().toString());

每次调用 edit() 都会返回一个新的 Editor 实例。所以你得到一个实例,进行更改并保持不变。然后你得到第二个并提交它而不做任何更改,这导致首选项中的值没有变化。

Editor editor = savedSession.edit();
editor.putString("username", username.getText().toString());
editor.putString("password", ""+passtext);
editor.commit();

关于android - 无法在 AsyncTask 中设置 SharedPreferences?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21837653/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com