我使用类异步来下载和上传两个活动中的数据。上传不起作用,我不知道为什么。
这个工作正常!
new DatabaseConnector(true).execute("http://web2page.ch/apps/FruityNumber/highscoreShow.php");
但这不是!
new DatabaseConnector(false).execute("http://web2page.ch/apps/FruityNumber/highscoreUpload.php?user=test7&highscore=timer7");
但如果我删除"如果"在课堂上它运作良好......有人理解为什么吗?
public DatabaseConnector(Boolean download) {
this.download = download;
}
@Override
protected Long doInBackground(String... params) {
try {
try {
//Verbinden
url = new URL(params[0]);
httpURLConnection = (HttpURLConnection) url.openConnection();
httpURLConnection.connect();
if (download) {
//Falls die App nochmal geladen wird, sind die Daten nur einmal enthalten. Darum leeren.
arrayList.clear();
inputStream = httpURLConnection.getInputStream();
inputStreamReader = new InputStreamReader(inputStream);
bufferedReader = new BufferedReader(inputStreamReader);
for (String line = bufferedReader.readLine(); line != null; line = bufferedReader.readLine()) {
arrayList.add(line);
}
} else {
}
} catch (MalformedURLException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
} catch (Exception e) {
e.printStackTrace();
}
return null;
}
答案 0 :(得分:2)
查看代码中的评论
new DatabaseConnector(false)
表示
public DatabaseConnector(Boolean download) {
this.download = false; // see here
}
所以
if (download) { // this won't execute because download == false
和
else {
// there is nothing here to do!
}
我不确定你对预期有何不同......
解决这个问题取决于您使用boolean
变量的原因。如果没有理由,那么删除它,不要传递任何东西。
否则,听起来您想将上传代码放在else{}