Android中的Internet连接

时间:2010-11-22 05:38:09

标签: android android-internet

我在使用互联网的应用程序上工作。

  • 它包含来自url的XML解析。 比
  • 解析时显示进度对话框 时间。
  • 解析完成后停止对话框。
  • 在ListView中设置TEXT(数据)。

我的问题是,当设备连接到互联网时,我的应用程序工作正常但是当设备未连接到互联网时“进度对话框”正在运行无限时间。

如果设备未连接到互联网或wifi,我想停止对话。怎么做?
任何的想法?  对不起伙计....我改变主意,我想点击按钮时检查互联网连接。我到目前为止所尝试的是......

public void onCreate(Bundle savedInstanceState) {

        super.onCreate(savedInstanceState);
        setContentView(R.layout.homelayout);
        mclip = (ImageButton) findViewById(R.id.clip);
        mclip.setClickable(true);
        mclip.setFocusable(true);

        mclip.setOnClickListener(new OnClickListener() {

            public void onClick(View view) {
                ConnectivityManager cm = (ConnectivityManager)              getSystemService(Context.CONNECTIVITY_SERVICE);
                NetworkInfo netInfo = cm.getActiveNetworkInfo();
                if (netInfo != null && netInfo.isConnectedOrConnecting()) {
               //if it is connected to internet than start Another Activity.
                startActivity(new Intent(ListViewExample.this, ClipOfDay.class));
                } else if (netInfo == null) {
                    AlertDialog alertDialog = new AlertDialog.Builder(ListViewExample.this).create();
                    alertDialog.setTitle("Connection Problem");
                    alertDialog.setMessage("You are not connected to Internet");
                    alertDialog.setButton("OK", new DialogInterface.OnClickListener() {

                        public void onClick(DialogInterface dialog, int which) {
                            return;
                        }
                    });
                    alertDialog.show();
                }

            }
        });
       }

但这不起作用。如果设备未连接到互联网,我想显示AlertDialog。否则会启动Activity。任何人都可以告诉我该怎么做? 谢谢。

3 个答案:

答案 0 :(得分:2)

检查网络连接
用于检查连接的简单代码

ConnectivityManager cMgr = (ConnectivityManager) con.getSystemService(Context.CONNECTIVITY_SERVICE);
            NetworkInfo netInfo = cMgr.getActiveNetworkInfo();
            String status = netInfo.getState().toString();
            if (status.equals("CONNECTED")) {
               //DO you work
            } else {
                Log.e("error", "No connection available ");
            }

答案 1 :(得分:1)

使用这两种方法检查连接性:

Context.getSystemService(Context.CONNECTIVITY_SERVICE).getNetworkInfo(ConnectivityManager.TYPE_MOBILE)
Context.getSystemService(Context.CONNECTIVITY_SERVICE).getNetworkInfo(ConnectivityManager.TYPE_WIFI)

然后解析返回的结果以了解连接是否可用。 如果它可用,那么只做事情并放置对话框。

或者,您也可以弹出对话框,在执行任何网络操作之前​​,检查与这些方法的连接,如果连接不可用,则隐藏/取消对话框并显示错误消息。 否则,去网络行动。 是的,总是有一个try-catch块。

答案 2 :(得分:0)

  •  首先检查互联网或wifi是否已连接,然后运行您的代码
  • 使用try,catch,如果由于连接错误而发生某些异常,请删除catch块中的对话框。

这可以是这样做的一种方式.............. 希望它有所帮助.......