登录失败条件无法正常工作

时间:2017-05-16 06:29:56

标签: android

我有一个应用程序,其中用户身份验证已完成发送请求,如果响应成功,应用程序导航到下一个活动。如果用户名密码正确,则导航但如果不正确,则弹出对话框并且不会关闭在我的日志中我得到了

java.io.IOException: HTTP/1.1 401 The username or password you entered is incorrect.

我已经在我的代码中处理了它,如果响应不成功,则显示Toast消息登录失败并关闭对话框。如果我输入的错误凭据没有显示它。我使用断点检查了部分代码无法访问。

我的代码:

buttonlogin.setOnClickListener(new View.OnClickListener()
        {
            @Override
            public void onClick(View v)
            {
                if(etemail.getText().toString().equals("") && etpass.getText().toString().equals(""))
                {
                    Toast.makeText(getApplicationContext(),"Enter your username and Password",Toast.LENGTH_LONG).show();
                }
                else
                {
                    final ProgressDialog progressDialog = new ProgressDialog(MainActivity.this);
                    progressDialog.setMessage("Logging in..Please wait");
                    progressDialog.setIndeterminate(true);
                    progressDialog.show();
                    new Thread(new Runnable()
                    {
                        public void run()
                        {
                            try
                            {
                                restApi = new RallyRestApi(new URI("https://rally1.rallydev.com"),etemail.getText().toString(),etpass.getText().toString());
                                restApi.setApplicationName("BMC-AndroidforRally");
                                qtestset = new QueryRequest("Users");
                                qtestset.setLimit(1);
                                response=restApi.query(qtestset);
                                if(!response.wasSuccessful())
                                {
                                    parent.runOnUiThread(new Runnable() {
                                        @Override
                                        public void run()
                                        {
                                           Toast.makeText(getApplicationContext(),"Login Failed..incorrect Username/Password",Toast.LENGTH_LONG).show();
                                            progressDialog.dismiss();
                                        }
                                    });
                                }
                                else
                                {
                                    progressDialog.dismiss();
                                    //Toast.makeText(getApplicationContext(),"Login Successful.....Logged in as :"+etemail.getText().toString(),Toast.LENGTH_LONG).show();
                                    Intent mainintent = new Intent(MainActivity.this,FirstPage.class);
                                    mainintent.putExtra("username",etemail.getText().toString());
                                    mainintent.putExtra("password",etpass.getText().toString());
                                    startActivity(mainintent);
                                }
                            }
                            catch (URISyntaxException | IOException e)
                            {
                                e.printStackTrace();

                            }

                        }
                    }).start();

                }

            }
        });

此外,我创建了一个新线程以加快执行速度。

1 个答案:

答案 0 :(得分:0)

在这个概念中,不需要实现可运行的线程。   在OnClickListener中删除线程它将正常工作。因为线程只显示旧消息(仍在运行)。最好在OnClickListener中删除线程,或在条件转到false语句时停止线程。