gpt4 book ai didi

java - 可以在 doInBackground() 方法中创建 StringRequest 吗?

转载 作者:行者123 更新时间:2023-11-30 01:31:44 28 4
gpt4 key购买 nike

我正在创建一个按钮,单击该按钮会调用 checkUserName 方法,该方法会搜索数据库并告知用户名是否可用。 URL_CHECK_USERNAME 响应“用户名可用”或“用户名不可用”。

    public void checkUserName(View v){

String username = inputUserName.getText().toString().trim();
new CheckUsername().execute(username);

}

class CheckUsername extends AsyncTask<String, String, String>{

String r = null;

@Override
protected void onPreExecute() {
super.onPreExecute();
pDialog = new ProgressDialog(RegisterActivity.this);
pDialog.setMessage("Checking Availability of this Username...");
pDialog.setIndeterminate(false);
pDialog.setCancelable(false);
pDialog.show();
}

@Override
protected String doInBackground(String... params) {

//String r = null;
final String username = params[0];

StringRequest strReq = new StringRequest(Method.POST,
AppConfig.URL_CHECK_USERNAME, new Response.Listener<String>() {
@Override
public void onResponse(String response) {
r = response;
}

}, new Response.ErrorListener() {
@Override
public void onErrorResponse(VolleyError volleyError) {

Log.e(TAG, "Error in checking username." + volleyError.getMessage());
Toast.makeText(getApplicationContext(), volleyError.getMessage(), Toast.LENGTH_SHORT).show();
hideDialog();
}
}){
@Override
protected Map<String, String> getParams() {

Map<String, String> param = new HashMap<>();
//param.put("username", params[0]);
param.put("username", username);
return param;
}
};


AppController.getInstance().addToRequestQueue(strReq);

return r;

}

@Override
protected void onPostExecute(String s) {
super.onPostExecute(s);
pDialog.dismiss();
Toast.makeText(RegisterActivity.this, s, Toast.LENGTH_SHORT).show();
}

}

这个程序每次都显示一个空的 Toast。可能是什么问题?

最佳答案

根据您发布的代码,我想您正在使用 Volley 作为您的网络库。如果是这种情况,您应该意识到不需要您的 Asynctask,因为 Volley 会为您处理线程。

请求将在后台执行,回调将被异步调用。这就是为什么你的 toast 是空的。

在您的 checkUsername(View) 方法中创建您的 StringRequest,并在 onResponse 回调中显示 toast。

关于java - 可以在 doInBackground() 方法中创建 StringRequest 吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35661452/

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