Rumah > Soal Jawab > teks badan
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);
...
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");
//当然,注意判空哦
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.
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
天蓬老师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 .