0

我在使用 Internet 的应用程序上工作。

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

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

如果设备未连接到互联网或 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。谁能告诉我该怎么做?
谢谢。

4

3 回答 3

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 ");
            }
于 2010-11-22T06:10:02.457 回答
1

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

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

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

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

于 2010-11-22T06:18:29.623 回答
0
  • 首先检查是否连接了互联网或wifi,然后运行您的代码
  • 使用try、catch,以防连接错误发生异常,删除catch块中的对话框。



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

于 2010-11-22T06:04:49.747 回答