Rumah  >  Soal Jawab  >  teks badan

java - 怎样才能在UI线程中等待okhttp返回结果才进行下一步

PHP中文网PHP中文网2717 hari yang lalu388

membalas semua(6)saya akan balas

  • PHPz

    PHPz2017-04-18 10:03:13

    Pengendali Guna:

    //在onCreate()方法外定义一个Handler :
    Handler myHandler = new Handler() {  
        public void handleMessage(Message msg) {   
            switch (msg.what) {   
                case UI_OPRATION:   
                    doSomething();  
                    break;   
            }   
            super.handleMessage(msg);   
        }   
    };
         
    //调用处
    ...
    String version = response.body().string();
    myHandler.sendMessage(UI_OPRATION);
    ...
    

    balas
    0
  • 阿神

    阿神2017-04-18 10:03:13

    Syorkan rxjava+retrofit

    balas
    0
  • PHP中文网

    PHP中文网2017-04-18 10:03:13

    //方法一
    message.obj = version;
    
    //方法二
    Bundle bundle = new Bundle();
    bundle.putCharSequence("你的KEY",version);
    message.setData(bundle);
    
    //UI里的handle里面用
    Bundle bundle = message.getData();
    String version = bundle.getCharSequence("你的KEY");
    
    //或者直接
    String version = message.getData().getCharSequence("你的KEY");
    
    //当然,注意判空哦
    

    balas
    0
  • PHPz

    PHPz2017-04-18 10:03:13

    Tiada kod, hanya idea.
    Pada asalnya, selain mengelakkan anr untuk permintaan rangkaian tak segerak, terdapat satu lagi sebab penting, iaitu untuk mencapai operasi selari. Dan kesan yang anda inginkan sebenarnya adalah kesan pelaksanaan segerak.
    Jadi kaedah pelaksanaannya ialah pengendali memproses data dan paparan pemuatan digunakan untuk mengasingkan operasi pengguna. Proseskannya selepas mendapat panggilan balik.

    balas
    0
  • PHP中文网

    PHP中文网2017-04-18 10:03:13

    Selepas anda meminta data, cuma pasang version menggunakan msg.obj=version, kemudian handleMessage(Message msg) dapatkan versi dalam OnCreate dan kemudian teruskan meminta data secara tidak segerak

    balas
    0
  • 天蓬老师

    天蓬老师2017-04-18 10:03:13

    Jawapan di atas semuanya bagus. Biarkan saya menambah sesuatu yang tambahan dalam keluarga persegi adalah sangat mudah untuk digunakan jika retrofit keluarga itu sendiri ditambah dengan sangat baik dalam pengendalian antara benang dan pengendalian pengecualian juga sangat baik .

    balas
    0
  • Batalbalas