1. 程式人生 > >Handler和子執行緒解析介面

Handler和子執行緒解析介面

先在xml介面設定兩個控制元件一個按鈕和一個listview
在這裡插入圖片描述
在原頁面

public class MainActivity extends AppCompatActivity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        //第一步找控制元件
        Button button= findViewById(R.id.button);
        //第二步點選事件
        button.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                //第三步開啟子執行緒
            new Thread(){
                @Override
                public void run() {
                    super.run();
                    //在這裡寫耗時操作(請求網路資料)
                    //第四步:判斷網路狀態
                    boolean networkConnected = Http.isNetworkConnected(MainActivity.this);
                    //判斷有沒有網
                    if (networkConnected){
                        //有網就請求資料
                        String get = Http.requestHttpGet("http://api.expoon.com/AppNews/getNewsList/type/1/p/1");
                        //記得導包
                        Gson gson=new Gson();
                        //bean類別忘了建立了
                        JsonBean bean = gson.fromJson(get, JsonBean.class);
                        //把資料傳遞給主執行緒
                        Message message=new Message();
                        message.what=0;
                        message.obj=bean;
                        handler.sendMessage(message);
                    }else{
                       handler.sendEmptyMessageDelayed(1,0);
                    }

                }
            }.start();

            }
        });

    }

  
}

新建一個主執行緒

  Handler handler = new Handler() {
        @Override
        public void handleMessage(Message msg) {
            super.handleMessage(msg);
        switch (msg.what){
            case 0:
                JsonBean bean= (JsonBean) msg.obj;
                Toast.makeText(MainActivity.this,""+bean.toString(),Toast.LENGTH_LONG).show();

                break;
            case 1:
                //沒網就提示使用者 沒網
                Toast.makeText(MainActivity.this,"兄嘚,沒網啊?",Toast.LENGTH_LONG).show();
                break;
        }
        }
    };

注:介面的網址可以在下面的網址裡調取!!!
https://www.juhe.cn/