0

アプリのネットワーク接続を確認するためのコードを次に示します。ネットワークに接続されている場合にのみアプリを実行し、そうでない場合は閉じます。コードはエラーなしで実行されていましたが、問題はアラート ダイアログが何度も表示されることです。

private void checkConnectivity(){

      final Thread checkConnection = new Thread(new Runnable(){
            @Override
            public void run()
            {

                while (checkCon == true){
                if(!isNetworkAvailable(MainActivity.this)) {

                    runOnUiThread(new Runnable() {

                        @Override
                        public void run() {
                            // TODO Auto-generated method stub
                            new AlertDialog.Builder(MainActivity.this)
                            .setMessage("No network connection.")   
                            .setCancelable(false)
                            .setPositiveButton(android.R.string.yes, new DialogInterface.OnClickListener() {
                                public void onClick(DialogInterface d, int which) {                                 
                                    checkCon = false;
                                    finish();

                                }
                             }).show();                                                         


                        }
                    });                         
                    } else {
                        checkCon = true;
                    }

            try {
                Thread.sleep(2000);
            } catch (InterruptedException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }
                }}
        });
        checkConnection.start();


  }
4

2 に答える 2

0

ハリズムによる回答、ありがとう

  private void checkConnectivity(){

      final Thread checkConnection = new Thread(new Runnable(){
            @Override
            public void run()
            {

                while (checkCon == true){
                if(!isNetworkAvailable(MainActivity.this)) {

                    runOnUiThread(new Runnable() {

                        @Override
                        public void run() {
                            // TODO Auto-generated method stub
                            new AlertDialog.Builder(MainActivity.this)
                            .setMessage("No network connection.")   
                            .setCancelable(false)
                            .setPositiveButton(android.R.string.yes, new DialogInterface.OnClickListener() {
                                public void onClick(DialogInterface d, int which) {                                 

                                    finish();                                       
                                }

                             }).show(); 
                             checkCon = false;
                        }
                    });                         
                    } else {
                        checkCon = true;
                    }

            try {
                Thread.sleep(2000);
            } catch (InterruptedException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }
                }}
        });
        checkConnection.start();


  }
于 2014-12-31T08:13:03.937 に答える