开发者

Error when checking Internet Connection in Android

The idea is when there is no internet connection available, show my custom dialog to users which indicates there is no connection. Otherwise, when page is loading in WebView, show a ProgressDialog to show that page is loading and dismiss when loading is done. When there is an internet connection this code works, but if there is no, it crashes and I can't find where the error is.

package com.tariknotebook;

import android.app.Activity;
import android.app.Dialog;
import android.app.ProgressDialog;
import android.content.Context;
import android.graphics.Bitmap;
import android.net.ConnectivityManager;
import android.net.NetworkInfo;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.webkit.WebView;
import android.webkit.WebViewClient;
import android.widget.Button;

public class NoteBook extends Activity {
    /** Called when the activity is first created. */
    WebView web;

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
        web = (WebView) findViewById(R.id.browserMine);
        web.setWebViewClient(new HelloWebViewClient());
        web.getSettings().setJavaScriptEnabled(true);
    }

    @Override
    protected void onStart() {
        // TODO Auto-generated method stub
        super.onStart();
        web.loadUrl("http://m.seslisozluk.com");
    }

    ProgressDialog dialog;
    Dialog connDialog;

    @Override
    protected Dialog onCreateDialog(int id) {

        switch(id)
        {
        case 1:
            dialog = ProgressDialog.show(NoteBook.this, "Loading",
            "Loading.. Please wait.");

            break;
        case 2:
                connDialog = new Dialog(getApplicationContext());
                connDialog.setContentView(R.layout.connection);
                connDialog.setTitle("No Internet Connection");

                Button closeButton = (Button) findViewById(R.id.closeButton);
                closeButton.setOnClickListener(new closeButtonOnClickListener());
                connDialog.show();
            break;
        }


        return super.onCreateDialog(id);
    }

    private class closeButtonOnClickListener implements OnClickListener
    {
        public void onClick(View v) {
            connDialog.dismiss();
        };
    }

    private class HelloWebViewClient extends WebViewClient {
        @Override
        public boolean shouldOverrideUrlLoading(WebView view, String url) {
            view.loadUrl(url);
            return true;
        }
        @Override
        public void onPageStarted(WebView view, String url, Bitmap favicon) {
            // TODO Auto-generated method stub
            super.onPageStarted(view, url, favicon);
                ConnectivityManager conStatus = (ConnectivityManager) view.getContext().getApplicationContext().getSystemService(Contex开发者_如何学编程t.CONNECTIVITY_SERVICE);
                if(conStatus.getActiveNetworkInfo().isConnected() && conStatus.getActiveNetworkInfo() != null)
                    showDialog(1);
                else
                    showDialog(2);
        }

        @Override
        public void onPageFinished(WebView view, String url) {
            // TODO Auto-generated method stub
            super.onPageFinished(view, url);
            dialog.dismiss();

        }

    }
}

And this is the error log as well :

Error when checking Internet Connection in Android


When you post error messages, you should tell us which line of the source corresponds.

By pasting your code into a text editor, I believe line 83 is:

if(conStatus.getActiveNetworkInfo().isConnected() && conStatus.getActiveNetworkInfo() != null)

This strongly suggests that conStatus is null and you are trying to call a method of non-existent object.

You should check that it's non-null first.

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜