java - 怎样才能在UI线程中等待okhttp返回结果才进行下一步
PHP中文网
PHP中文网 2017-04-18 10:01:13
0
6
418
PHP中文网
PHP中文网

认证0级讲师

membalas semua(6)
PHPzhong

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);
...
阿神

Syorkan rxjava+retrofit

Ty80
//方法一
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");

//当然,注意判空哦
PHPzhong

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.

Ty80

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

Peter_Zhu

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 .

Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan
Tentang kita Penafian Sitemap
Laman web PHP Cina:Latihan PHP dalam talian kebajikan awam,Bantu pelajar PHP berkembang dengan cepat!