如果网络不可用,请停止执行活动 - Android

时间:2012-09-15 17:46:40

标签: android networking android-activity

在我的Android应用中,用户首先登陆登录活动。我正在检查网络可用性。如果网络不可用,我想进一步停止切除。

我们需要在代码级别上工作,或者我们在Activity上有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()这样的调用来停止执行。

请注意,我不想销毁/关闭活动。活动应保持完整,以便用户可以继续尝试,可能是在打开网络后。

2 个答案:

答案 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 );
.... .....
.... .....

希望它可以帮到你!

答案 1 :(得分:0)

我认为你在寻找的是

finish();

将终止上下文中的活动。