2012-09-15 4 views
0

내 Android 앱에서 사용자는 로그인 활동에 먼저 착수합니다. 네트워크 가용성을 점검하고 있습니다. 네트워크를 사용할 수 없다면, 나는 더 이상 절제를 멈추고 싶다.네트워크를 사용할 수없는 경우 활동 실행 중지 - Android

코드 수준에서 작업해야하거나 다음 코드를 처리하기 위해 활동에 activity.cancel() 또는 return null과 같은 것을 사용할 수 있습니다. 활동을 종료하고 싶지는 않습니다. 네트워크를 사용할 수 없다는 사실을 사용자에게 알려주고 싶습니다.

위의 코드는 온 클릭 (로그인 버튼)에

 public void onClick(View v) { 
    if (v.getId() == R.id.btnLogin) { 

     if (Utilities.isNetworkAvailable(this)) { 
      mIsNetworkAvailable = true; 
     } 

     if (mIsNetworkAvailable) { 
      username = ((EditText) findViewById(R.id.username)).getText().toString().trim(); 
      password = ((EditText) findViewById(R.id.password)).getText().toString().trim(); 
     } 

     // If U/P is empty, do NOT process anything, just display the alert and stop. 
     if (username.length() == 0 || password.length() == 0) { 
      Utilities.showAlert("Please enter username and password", this); 

      // HOW TO STOP THE EXECUTION HERE 
     } else if (!mIsNetworkAvailable) { 
      Utilities.showAlert("Internet connection is not availble in your device.", this); 
      // HOW TO STOP THE EXECUTION HERE 
     } 

     // If not any of the above, proceed. 

     User userobj = new User(); 
     userobj.setUsername(username); 
     userobj.setPassword(password); 

     TaskHandler handler = new TaskHandler(getString(R.string.server_uri) + "Verify/", userobj, LoginActivity.this); 
    } 
} 

편집 : 여기

는 코드입니다. 내가 원하는 것은 사용자가 로그인 버튼을 클릭 할 때 네트워크를 사용할 수 없다면 경고를 표시하고 추가 프로세스를 중단해야한다는 것입니다. 성공하면 다음 활동을 열어야합니다.

다른 곳과 마찬가지로 일반적인 흐름입니다. 알아요, if-else 블록에 전체 코드를 감쌀 수 있습니다. 그러나 finish()과 같은 호출로 실행을 중지 할 수있는 방법이 있으면 궁금합니다.

활동을 삭제/닫고 싶지 않습니다. 네트워크를 켠 후 사용자가 계속 시도 할 수 있도록 활동을 그대로 유지해야합니다.

+0

제출하신 코드로 달성하려는 목표가 명확하지 않습니다. 좀 더 자세한 정보를 추가 할 수 있습니까? – Nicholas

+0

확인하십시오. 나는 더 많은 정보를 추가했다. –

답변

2

시도해보십시오. 제약 조건이 만족되지 않으면 그냥 반환하십시오. 아래에 표시됩니다.

.... ..... 
.... ..... 
if (username.length() == 0 || password.length() == 0) { 
     Utilities.showAlert("Please enter username and password", this); 

     return; 
    } else if (!mIsNetworkAvailable) { 
     Utilities.showAlert("Internet connection is not availble in your device.", this); 
     return; 
    } 


    User userobj = new User(); 
    userobj.setUsername(username); 
    userobj.setPassword(password); 
.... ..... 
.... ..... 

희망이 있습니다.

+0

이 코드는 onClick 메서드에 있습니다. 그리고이 방법은 무효입니다. 그래서 아무 것도 돌려주지 않습니다. 그래서 나는 돌아 오지 않을 것이라고 생각합니다. 권리? –

+0

이 작품! 감사! –

+0

도움 풀 대답 !! – Jamsheer

0

나는 당신을 위해 무엇을 찾고있는 것은 맥락에서 활동을 종료합니다

finish(); 

생각합니다.

+0

앱을 종료합니까? 또는 활동? 활동이 그대로 유지되어 사용자가 계속 로그인 할 수 있기를 바랍니다. –

+0

나는 그것을 시도했다. 나는 아무것도 막지 않았다. –

관련 문제