Maison > Questions et réponses > le corps du texte
最近一个项目涉及到好多点击button进行开分线程网络请求,但是问题来了,如果button不做处理,用户不断的去点击button,就会有一堆线程创建,应用卡死,或者在没网络的时候也一直去点击button。有没有好的处理方法,求教!
ringa_lee2017-04-17 17:54:47
Vous pouvez définir l'intervalle de temps entre deux clics. S'il est inférieur à un certain laps de temps, le deuxième clic ne répondra pas
迷茫2017-04-17 17:54:47
1. Déterminez d'abord s'il existe un réseau. Si le réseau est indisponible, retournez directement
2 Filtrez les clics répétés
3 Si vous espérez qu'aucune nouvelle demande ne sera déclenchée avant que la demande précédente ne soit renvoyée. , vous pouvez définir un indicateur d'état
黄舟2017-04-17 17:54:47
Lorsque l'utilisateur clique sur le bouton pour la première fois, une interface d'invite conviviale est proposée : telle que diaolg, qui invite l'utilisateur à attendre que les données soient renvoyées.
Sinon, en termes d'expérience utilisateur, il n'y a pas de réponse lorsque je clique sur le bouton, je continuerai à cliquer.
J'espère que cela vous aidera.
高洛峰2017-04-17 17:54:47
Utilisez le pool de threads pour limiter le nombre maximum de threads.
Impossible de lancer des requêtes réseau pour la même URL en même temps
Cache
Volley peut faire tout ce qui précède
大家讲道理2017-04-17 17:54:47
Comme mentionné ci-dessus, un framework réseau doit être utilisé dans cette situation. Volley est en effet très approprié. Je recommande l'analyse du code source Volley que j'ai écrite. J'espère qu'elle vous sera utile : https://github.com/wangzhengy...
.巴扎黑2017-04-17 17:54:47
Une fois la demande lancée, l'événement Click du bouton est bloqué et restauré une fois la demande terminée.
大家讲道理2017-04-17 17:54:47
Après avoir cliqué sur le bouton, le bouton sera défini comme non cliquable. Si possible, la boîte de dialogue demandée apparaîtra Une fois les données demandées, la boîte de dialogue sera annulée et le bouton sera défini comme cliquable<🎜. >
巴扎黑2017-04-17 17:54:47
Écrivez un jugement et définissez un indicateur, TAG = false ; if (!TAG) {//execute}
Lorsqu'il est activé, TAG = true ;