如何再次重新执行asynctask?

时间:2015-10-15 14:48:53

标签: android android-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) {

1 个答案:

答案 0 :(得分:0)

可能是一次运行一个Asynctask的问题......! 请做一个可能的检查,

if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.HONEYCOMB) {
    task.executeOnExecutor(AsyncTask.THREAD_POOL_EXECUTOR);
} else {
    task.execute();
}

通过this链接......!