私の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);
}
}
編集
上記のコードはonClick(ログインボタン)にあります。私が達成したいのは、ユーザーがログインボタンをクリックしたときに、ネットワークが利用できない場合、アラートを表示してそれ以上のプロセスを停止する必要があるということです。成功した場合は、次のアクティビティを開く必要があります。
これは、他の場所と同じように通常のフローです。コード全体をif-elseブロックにまとめることができます。しかし、のような呼び出しで実行を停止する方法があるかどうか疑問に思っていますfinish()
。
アクティビティを破棄/閉じたくないことに注意してください。おそらくネットワークをオンにした後でも、ユーザーが試行を続けることができるように、アクティビティはそのままにしておく必要があります。