我有一个页面,用户输入手机号码来检查它是否存在于数据库中。我注意到的是,asynctask只能在第一次成功运行并将结果存储在某个地方,所以当我输入下一次不在数据库中的有效手机号时,它仍会告诉我手机号码无效!如何重新执行asynctask?
我知道asynctask默认是由单线程运行的。任何解决方案来解决这个?
这是我的代码:
@Override
public void onClick(View view) {
switch (view.getId()) {
case R.id.searchfor:
hp = handphone.getText().toString();
new AttemptLogin().execute(hp);
break;
default:
break;
class AttemptLogin extends AsyncTask<String, String, JSONObject> {
protected JSONObject doInBackground(String... args) {
try {
HashMap<String, String> params = new HashMap<>();
params.put("hp", args[0]);
Log.d("request", "starting");
JSONObject json = jsonParser.makeHttpRequest(
FIND_FRIENDS, "POST", params);
if (json != null) {
Log.d("JSON result", json.toString());
return json;
}
} catch (Exception e) {
e.printStackTrace();
}
return null;
}
protected void onPostExecute(JSONObject json) {
重新获得第一次正确的结果....? –
是的。但事情是我需要再次运行,因为我试图验证在同一页上的手机号码 –
好吧,我正在工作......!一秒 –