gpt4 book ai didi

java - Android 方法调用之间的延迟

转载 作者:行者123 更新时间:2023-12-01 16:59:22 26 4
gpt4 key购买 nike

我有一个应用程序,可以获取数据库上 user_id 的计数,以检查用户是否存在。

我遇到问题的代码:

registerBtn.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
usernameR = usernameRgt.getText().toString();
emailR = emailRgt.getText().toString();
passwordR = passwordRgt.getText().toString();
repeatR = repeatPassRgt.getText().toString();
new userExistsTask().execute(new ApiConnector());
if ((usernameR == null || usernameR.isEmpty() == true) || (emailR == null || emailR.isEmpty() == true) || (passwordR == null || passwordR.isEmpty() == true) || (repeatR == null || repeatR.isEmpty() == true)) {
Toast.makeText(RegisterActivity.this, "One or more fields are empty!", Toast.LENGTH_SHORT).show();
} else {
if (userExistN == 0) {
Toast.makeText(RegisterActivity.this, "Não existe", Toast.LENGTH_SHORT).show();
} else {
Toast.makeText(RegisterActivity.this, "existe", Toast.LENGTH_SHORT).show();
}
}
}
});

它按照我想要的方式工作,问题是调用new userExistsTask().execute(new ApiConnector());(设置变量userExistsN value) 需要一些时间来执行,并且 if 为变量 userExistsN 获取了错误的值,因此有办法在 if 和方法调用之间设置延迟吗?

更新:

userExistYask()代码:

private class userExistsTask extends AsyncTask<ApiConnector,Long,JSONArray>
{
@Override
protected JSONArray doInBackground(ApiConnector... params) {

// it is executed on Background thread

return params[0].userExists(usernameR);
}

@Override
protected void onPostExecute(JSONArray jsonArray) {

if (jsonArray != null) {
JSONObject json = null;
try {
json = jsonArray.getJSONObject(0);
userExistN = json.getInt("userCount");
System.out.println(userExistN);

} catch (JSONException e) {
e.printStackTrace();
}
} else {
Toast.makeText(RegisterActivity.this, "Null", Toast.LENGTH_SHORT).show();
}


}
}

最佳答案

为什么不将 IF 代码放在单独的方法中并从 postExecute 调用此方法?这保证了在后台方法完成之前不会调用该方法

关于java - Android 方法调用之间的延迟,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28909352/

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