Maison > Questions et réponses > le corps du texte
PHPz2017-04-18 10:03:13
Utiliser le gestionnaire :
//在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
Pas de code, juste une idée.
À l'origine, en plus d'éviter les requêtes réseau asynchrones, il existe une autre raison importante, qui est de réaliser des opérations parallèles. Et l’effet souhaité est en fait l’effet d’une exécution synchrone.
La méthode d'implémentation est donc que le gestionnaire traite les données et qu'une vue de chargement est utilisée pour isoler les opérations de l'utilisateur. Traitez-le après avoir reçu le rappel.
PHP中文网2017-04-18 10:03:13
Après avoir demandé les données, installez simplement version
en utilisant msg.obj=version
, puis handleMessage(Message msg)
récupérez la version dans OnCreate puis continuez à demander les données de manière asynchrone
天蓬老师2017-04-18 10:03:13
Les réponses ci-dessus sont toutes bonnes. Permettez-moi d'ajouter quelque chose en plus. Okhttp dans la famille square est très facile à utiliser. Il sera encore plus facile à utiliser si la mise à niveau de la famille elle-même est ajoutée. Retrofit+Rx est très efficace dans la gestion des threads et la gestion des exceptions est également très bonne. .