내 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()
과 같은 호출로 실행을 중지 할 수있는 방법이 있으면 궁금합니다.
활동을 삭제/닫고 싶지 않습니다. 네트워크를 켠 후 사용자가 계속 시도 할 수 있도록 활동을 그대로 유지해야합니다.
제출하신 코드로 달성하려는 목표가 명확하지 않습니다. 좀 더 자세한 정보를 추가 할 수 있습니까? – Nicholas
확인하십시오. 나는 더 많은 정보를 추가했다. –