2016-11-26 60 views
0

我正在制作注册表单。
我使用Volley检查电子邮件是否已经存在(我连接到一个返回答案的PHP文件)。
我的问题是,应用程序继续工作,而我仍然在等待Volley返回答案。如何在Volley在porgress时使应用程序“睡眠”

代码:

 if(isValidEmail(emailET.getText().toString())){ 
     Response.Listener<String> responseListener = new Response.Listener<String>() { 
      @Override 
      public void onResponse(String response) { 
       try { 
        JSONObject jsonResponse = new JSONObject(response); 
        boolean success = jsonResponse.getBoolean("success"); 
        if(success){ 
         emailET.setError("Email is already in use"); 
        }else{ 
         System.out.println("Happening"); 
         validator += "0"; 
        } 

       } catch (JSONException e) { 
        e.printStackTrace(); 
       } 
      } 
     }; 
     EmailCheckRequest emailRequest = new EmailCheckRequest(emailET.getText().toString(), responseListener); 
     RequestQueue queue = Volley.newRequestQueue(AccountEmail.this); 
     queue.add(emailRequest); 
    } 
    System.out.println("validator=" + validator); 
    if(validator.matches("00")){ 
     startActivity(dataCollector()); 
    } 

现在的问题是,这部分代码:

    if(success){ 
        emailET.setError("Email is already in use"); 
       }else{ 
        System.out.println("Happening"); 
        validator += "0"; 
       } 

我怎样才能让:

if(validator.matches("00")){ 
    startActivity(dataCollector()); 
} 

的这部分代码之前发生应用程序“睡眠”,只有在Volley停止工作后才能继续使用?

+0

只需添加progressdialog而服务调用 – Bhavnik

回答

1

不要睡觉的应用程序。通过移动在监听器内部执行检查的代码来正确等待Volley,在响应结束时响应

+0

哇,那么简单^^非常感谢:D –