跳轉設置網絡頁面

public class MainActivity extends AppCompatActivity {

    public static final String TAG = "MainActivity";
    private ProgressDialog dialog;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);


        //new Thread + Handler  用異步任務類去替換


    }

    public void btnRequest(View v){
        //isConnection 返回的true,證明網絡是連接的
        if(NetWorkUtils.isConnection(this)) {
            //有網就去請求數據
            getData();
        }else{
            //彈出一個對話框
            showNetWorkSettingDialog();

        }

    }

    /**
     * 使用異步任務執行網絡請求
     * */
    private void getData(){
        //parameter : 放置請求連接地址以及請求參數 類型
        //Progress : 進度,當你們下載文件的時候,Integer
        //result: 限定你所請求網絡數據返回的類型是什麼,String
        new AsyncTask<String,Void,String>(){

            @Override
            protected void onPreExecute() {
                super.onPreExecute();
                //就是準備加載時會執行
                //時候顯示數據請求的加載框
                Log.e(TAG, "onPreExecute執行了" );

                showLoadDialog();


            }

            @Override
            protected void onPostExecute(String s) {
                super.onPostExecute(s);
                //當網絡數據請求完畢時會被執行
                //這個方法是運行在主線程的,做UI的更新
                Log.e(TAG, "onPostExecute執行了 " );

                if(s != null){
                    //JSON  去解析json
                    Gson gson = new Gson();
                    Info info = gson.fromJson(s, Info.class);

                   // Log.e(TAG, "onPostExecute: "+info.getResult().getData().get(0).getImtro() );
                    //設置適配器
                    //lv.setAdapter();
                }

                //隱藏進度加載對話框
                dialog.dismiss();



            }

            @Override
            protected void onProgressUpdate(Void... values) {
                super.onProgressUpdate(values);
                //當今都更新的時候會被執行
                Log.e(TAG, "onProgressUpdate執行了 " );

            }

            @Override
            protected String doInBackground(String... params) {
                try {
                    //耗時操作都在這裏執行,子線程
                    Log.e(TAG, "doInBackground執行了 " );
                    //String...大家可以可變參數類型看作是一個數組

                    String path = params[0];

                    URL url = new URL(path);
                    HttpURLConnection connection = (HttpURLConnection) url.openConnection();
                    connection.setRequestMethod("GET");
                    connection.setConnectTimeout(5*1000);
                    connection.setReadTimeout(5*1000);

                    int code = connection.getResponseCode();

                    if(code == HttpURLConnection.HTTP_OK){//判斷服務是否成功應答
                        //服務成功應答
                        InputStream is = connection.getInputStream();
                        String json = StreamTools.readFromNetWork(is);
                        return json;
                    }
                } catch (Exception e) {
                    e.printStackTrace();
                }
                return null;
            }
        }.execute("http://apis.juhe.cn/cook/query.php?key=ff00d7339861c7fd7d5b54b16b76422a&menu="+ URLEncoder.encode("黃燜雞"));

    }


    /**
     * 展示一個加載進度對話框
     */
    private void showLoadDialog(){
        dialog = new ProgressDialog(this);
        dialog.setMessage("顧曉彬玩命加載中...");
        dialog.show();
    }


    /**
     * 設置網絡設置提示對話框
     */
    private void showNetWorkSettingDialog(){


        AlertDialog.Builder builder = new AlertDialog.Builder(this);
        builder.setMessage("沒有設置網絡,請您設置網絡!");
        builder.setNegativeButton("取消",null);
        builder.setPositiveButton("設置", new DialogInterface.OnClickListener() {
            @Override
            public void onClick(DialogInterface dialog, int which) {

                //跳轉網絡設置界面  隱士意圖
                Intent intent = new Intent();
                intent.setAction("android.settings.WIRELESS_SETTINGS");
                startActivity(intent);

            }
        });

        builder.create().show();


    }





}

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章