我正在开发一个Android应用程序,其中有一个按钮,用于从服务器获取数据并显示到TextView
,
但问题是,如果用户在同一个按钮上点击多次,则应用程序在Android中无响应。
答案 0 :(得分:1)
如果用户在同一按钮上多次单击该应用程序 在Android
中变得无法响应
要避免应用程序在按钮单击时无响应:
1。在按钮上显示ProgressBar,并在收到服务器响应后将其关闭。
2。使用AsyncTask从后台线程中的服务器获取数据,因为如果我们将网络相关代码放在主线程上,那么应用程序将无响应,直到响应未从服务器返回
3。当服务器请求正在进行时,通过显示“正在进行中......”等正确的消息来处理按钮单击。
使用布尔变量来处理点击事件:
boolean isTaskRunning=false;
在开始AsyncTask
检查isTaskRunning
状态:之前单击按钮
if(!isTaskRunning){
isTaskRunning=true;
// start task for getting data from server
}else{
//... In progress...
}
从服务器获取数据后,将isTaskRunning
变量设为false
答案 1 :(得分:0)
尝试使用AsyncTask。它可以解决您的问题。当一次从服务器发送和接收数据时,应用程序可能无响应。
答案 2 :(得分:0)
如何从服务器获取数据。如果您使用的是Thread或AsyncTask,那就很好了。当用户单击您的按钮时,禁用您的按钮,然后启动线程或AsyncTask以从服务器获取数据。收到数据后,将其填入textview并启用按钮。
//disable click event
b.setClickable(false);
// enable click event
b.setClickable(true);
如果您在主线程上获取数据,那么您的应用可能会无响应并抛出ANR。