可能的相似性:Check if AsyncTask is taking too long
大家好,我现在正在构建一个Android应用程序,以帮助我的母亲管理账单。为此,我使用AsyncTask从我的数据库中获取一些数据。假设网络连接良好,数据不是很大,也不需要进度条,而且我不想让网络状况良好,因为它的速度非常快然后显示进度条,然后立即消失,这看起来像一个故障。
然而,考虑到网络并不总是好的,获取数据可能需要更多时间,并且用户不会知道他的输入是否被考虑,因为它是后台线程并且没有有关进度的UI信息。
这就是为什么我只想在AsyncTask花费太长时间时显示进度条,尽管我不知道也不知道实现这样的功能。
AsyncTask:
@Override
protected String doInBackground(String... values)
{
// connexion avec le serveur
HttpURLConnection connexion = null;
URL url = null;
try {
// ouvrir la connexion HTTP
url = new URL(BASE_URL + scriptPath);
connexion = (HttpURLConnection) url.openConnection();
// configurer la connexion en mode GET
connexion.setReadTimeout(10000);
connexion.setConnectTimeout(15000);
connexion.setRequestMethod("GET");
connexion.setDoInput(true);
// récupérer la réponse du serveur
InputStream reponse = connexion.getInputStream();
// récupérer les données et en faire une chaîne
BufferedReader reader = new BufferedReader(new InputStreamReader(reponse, "utf-8"));
String jsondata = "";
String fromReader = "";
while ((fromReader = reader.readLine()) != null) {
// Add line to jsonString
jsondata += (fromReader + "\n");
}
pd.dismiss(); //ProgressDialog started from the main thread
return jsondata;
} catch (Exception e) {
Log.e("ERROR", e.toString());
return null;
} finally {
// déconnexion obligatoire pour ne pas bloquer le serveur
if (connexion != null) connexion.disconnect();
}
}
提前谢谢大家。