您的位置:首页 > 理论基础 > 计算机网络

网络连接的判断的封装与 网络获取数据 的封装

2017-10-17 20:33 459 查看
//网络连接的判断的封装

package one.bw.com.rikao1017;

import android.app.AlertDialog;

import android.content.Context;

import android.content.DialogInterface;

import android.content.Intent;

import android.net.ConnectivityManager;

import android.net.NetworkInfo;

/**

 * Created by Administrator on 2017/10/17/017.

 */

public class NetWorkUtil {

    /**

     * 这个方法是判断网络状态是否可用的

     * @param context

     * @return

     */

    public static boolean isConn(Context context){

        boolean bisConnFlag=false;

        //1.获取网络连接的管理对象

        ConnectivityManager conManager = (ConnectivityManager)context.getSystemService(Context.CONNECTIVITY_SERVICE);

        //2.通过管理者对象拿到网络的信息

        NetworkInfo network = conManager.getActiveNetworkInfo();

        if(network!=null){

            //3.网络状态是否可用的返回值

            bisConnFlag=network.isAvailable();

        }

        return bisConnFlag;

    }

    /**

     * 如果没有网络 弹出dialog对话框,,,是否进入设置网络的页面

     * @param context

     */

    public static void showNoNetWorkDlg(final Context context) {

        AlertDialog.Builder builder = new AlertDialog.Builder(context);

        builder.setIcon(R.mipmap.ic_launcher)         //

                .setTitle("警告")            //

                .setMessage("当前无网络,是否去设置?").setPositiveButton("设置", new DialogInterface.OnClickListener() {

            @Override

            public void onClick(DialogInterface dialog, int which) {

                // 跳转到系统的网络设置界面

                Intent intent = null;

                // 先判断当前系统版本

                if(android.os.Build.VERSION.SDK_INT > 10){  // 3.0以上

                    intent = new Intent(android.provider.Settings.ACTION_WIRELESS_SETTINGS);

                }else{

                    intent = new Intent();

                    intent.setClassName("com.android.settings", "com.android.settings.WirelessSettings");

                }

                context.startActivity(intent);

            }

        }).setNegativeButton("取消", null).show();

    }

}

//接口传值

package one.bw.com.rikao1017;

/**

 * Created by Administrator on 2017/10/17/017.

 */

public interface JieKou {

    public void chuan(String json);

}

// 网络获取数据 的封装

package one.bw.com.rikao1017;

import android.content.Context;

import android.os.AsyncTask;

import android.util.Log;

import java.io.BufferedReader;

import java.io.InputStream;

import java.io.InputStreamReader;

import java.net.HttpURLConnection;

import java.net.SocketTimeoutException;

import java.net.URL;

/**

 * Created by Administrator on 2017/10/17/017.

 */

public class NetgetcountUtil {

    public static void getcount(final String path, Context context, final JieKou jie){

        if(NetWorkUtil.isConn(context)) {

            new AsyncTask<Void, Void, String>() {

                @Override

                protected String doInBackground(Void... voids) {

                    try {

                        URL url = new URL(path);

                        HttpURLConnection connection = (HttpURLConnection) url.openConnection();

                        connection.setRequestMethod("GET");

                        connection.setReadTimeout(5000);

                        connection.setConnectTimeout(5000);

                        int req = connection.getResponseCode();

                        if (req == 200) {

                            InputStream inputStream = connection.getInputStream();

                            String s = streamToString(inputStream, "utf-8");

                           Log.i("jiab",s);

                            return s;

                        }

                    } catch (SocketTimeoutException u){

                    } catch (Exception e) {

                        e.printStackTrace();

                    }

                    return null;

                }

                @Override

                protected void onPostExecute(String s) {

                    super.onPostExecute(s);

                    jie.chuan(s);

                }

            }.execute();

        }else{

            NetWorkUtil.showNoNetWorkDlg(context);

        }

    }

    //读写操作

    private static String streamToString(InputStream inputStream,String charset) {

        try {

            InputStreamReader inputStreamReader = new InputStreamReader(inputStream,charset);

            BufferedReader bufferedReader = new BufferedReader(inputStreamReader);

            String s = null;

            StringBuilder builder = new StringBuilder();

            while ((s = bufferedReader.readLine()) != null){

                builder.append(s);

            }

            bufferedReader.close();

            return builder.toString();

        } catch (Exception e) {

            e.printStackTrace();

        }

        return  null;

    }

}

//mainactivity中的逻辑处理,调用

 private void getFrist() {

        String path="http://www.yulin520.com/a2a/impressApi/news/mergeList?pageSize=10&page=1";

        NetgetcountUtil.getcount(path, MainActivity.this, new JieKou() {

            @Override

            public void chuan(String json) {

                Gson gson = new Gson();

                Mybean mybean = gson.fromJson(json, Mybean.class);

                List<Mybean.DataBean> data = mybean.getData();

                dlist.clear();

                dlist.addAll(data);

                setAtapter();

                xlv.stopLoadMore();

                Date date = new Date(System.currentTimeMillis());

                SimpleDateFormat sim = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");

                String format = sim.format(date);

                xlv.setRefreshTime(format);

                list.clear();

                for (Mybean.DataBean d:dlist){

                    list.add(d.getImg());

                }

                Log.i("jiab",list.toString());

                vp.setAdapter(new Mypager(list,MainActivity.this,h));

                h.sendEmptyMessageDelayed(0,2000);

                initDoc(dlist);  

//轮滑做圆点处理的方法


            }

        });

    }
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐