0

私はインターネットを使用するアプリケーションに取り組んでいます。

  • 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

接続を確認するには、次の 2 つの方法を使用します。

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ブロックのダイアログを削除します。



これは、これを行う1つの方法です..............
お役に立てば幸いです.......

于 2010-11-22T06:04:49.747 に答える