Android ProgressDialog关闭和AlertDialogShow(如果没有Internet连接)

Android ProgressDialog关闭和AlertDialogShow(如果没有Internet连接),android,progressdialog,android-alertdialog,internet-connection,Android,Progressdialog,Android Alertdialog,Internet Connection,我正在为我的应用程序使用web服务。数据在方法callWebService中运行。我在填充ListView时显示ProgressDialog。我还想检查是否没有网络连接来关闭ProgressDialog并向用户显示AlertDialog。有人能帮我一下吗?这是我的代码 myProgressDialog = ProgressDialog.show(ExchangeMoneMK1Activity.this, "Please wait...", "L

我正在为我的应用程序使用web服务。数据在方法callWebService中运行。我在填充ListView时显示ProgressDialog。我还想检查是否没有网络连接来关闭ProgressDialog并向用户显示AlertDialog。有人能帮我一下吗?这是我的代码

     myProgressDialog = ProgressDialog.show(ExchangeMoneMK1Activity.this,
                     "Please wait...", "Loading...", true);
         Thread thread = new Thread(this);
         thread.start();


 private boolean isNetworkAvailable() {
    ConnectivityManager connectivityManager 
          = (ConnectivityManager) getSystemService(Context.CONNECTIVITY_SERVICE);
    NetworkInfo activeNetworkInfo = connectivityManager.getActiveNetworkInfo();
    return activeNetworkInfo != null;
}




private Handler handler = new Handler() {
    @Override
    public void handleMessage(Message msg) {
        switch(msg.what){
        case 0:

            myProgressDialog.dismiss();
            int resID = R.layout.list_item;
            aa = new ExchangeRateAdapter(ExchangeMoneMK1Activity.this, resID,currencyList);

            lw.setAdapter(aa);
            break;
        }


    }
})

我还没有alertdialog,因为如果没有internet连接,进度条不会关闭 我已经把安卓利德名单上的特权


有人能帮我吗?

最后还可以与try catch and put handler一起使用。sendEmptyMessage0;在芬兰


因为我认为你得到了任何借口,你的流量从callWebService中跳跃到捕捉。。。。。并且没有到达handler.sendEmptyMessage0;行……。

使用异步任务。这会简单得多。一般情况如下。可能会有一些小的编译错误,但是,这会给你一个想法

class MyTask extends AsyncTask<Void, Void, ArrayList> {
    protected Void doInBackground(Void... params) {
        ArrayList currencyList;
        if(isNetworkAvailable())
            currencyList = callWebService();
        return currencyList;
    }
    void onPreExecute() {
        myProgressDialog = ProgressDialog.show(ExchangeMoneMK1Activity.this,
                 "Please wait...", "Loading...", true);
    }
    void onPostExecute(ArrayList currencyList) {
        myProgressDialog.dismiss();
        if (currencyList == null) {
            //Handle error
            return;
        }
        int resID = R.layout.list_item;
        aa = new ExchangeRateAdapter(ExchangeMoneMK1Activity.this, resID,currencyList);

        lw.setAdapter(aa);
    }
}
class MyTask extends AsyncTask<Void, Void, ArrayList> {
    protected Void doInBackground(Void... params) {
        ArrayList currencyList;
        if(isNetworkAvailable())
            currencyList = callWebService();
        return currencyList;
    }
    void onPreExecute() {
        myProgressDialog = ProgressDialog.show(ExchangeMoneMK1Activity.this,
                 "Please wait...", "Loading...", true);
    }
    void onPostExecute(ArrayList currencyList) {
        myProgressDialog.dismiss();
        if (currencyList == null) {
            //Handle error
            return;
        }
        int resID = R.layout.list_item;
        aa = new ExchangeRateAdapter(ExchangeMoneMK1Activity.this, resID,currencyList);

        lw.setAdapter(aa);
    }
}