Songnae
507
2021-01-31 15:45:00
1
158

안드로이드 메소드 실행순서 질문좀요///ㅠㅠ


로그인시 비밀번호가 맞으면 메인액티비티로 이동하는 소스를 작성중인데 메소드 순서가 차례대로 되지 않는것 같아서 질문 드립니다.

코드는 이렇고요.여기서 isLogin()메소드에 들어가서 끝나기전에 if문을 타버려서 flag값이 바뀌지 않아 인텐트 실행이 안됩니다.... 왜 이러는걸까요??

button_login.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                String inputName = name.getText().toString();
                String inputPassword = password.getText().toString();
                Log.d("MainActivity", "isLogin 호출전 = " + flag);
                isLogin(inputName, inputPassword);
                Log.d("MainActivity", "login flag = " + flag);
                if(flag == true){//로그인정보 트루일시 메인액티비티로 넘어감
                    Log.d("MainActivity", "인텐트전");
                    Intent intent = new Intent(getApplicationContext(), MainActivity.class);
                    startActivity(intent);
                }else{//비밀번호 틀렸을때
                    name.setText("");
                    password.setText("");
                    Toast.makeText(getApplicationContext(), "이름과 비밀번호를 확인해주세요", Toast.LENGTH_SHORT).show();
                }
            }
        });


0
  • 답변 1

  • UnknownDontknow
    777
    2021-01-31 21:12:32

    비동기에 대해 공부해보셔야 할듯해요. 이전글을 보니 firebase를 사용하시니 해당 로그인시스템을 사용하실텐데 firebase는 앱과 비동기방식으로 통신하기 때문에  islogin 함수가 위 라인에서 실행되었다고해서 flag값이 true임을 보장할수없어요. 그래서 위의 조건문들은 islogin함수안의 firebase signin로직안에서 처리하셔야 동작해요.

  • 로그인을 하시면 답변을 등록할 수 있습니다.