Я должен загрузить данные с сервера, максимум 3 попытки, если загрузка не удалась.
public class DownloadFile {
private boolean isSuccessful;
public DownloadFile() {
int attempt = 0;
while(!isSuccessful && (attempt++ < 3)) {
DownloadFileThread.start();
while (DownloadFileThread.isAlive());
}
}
private Thread DownloadFileThread = new Thread() {
public void run() {
try {
// download file from server
isSuccessful = true;
} catch (Exception e) {
isSuccessful = false;
}
}
}
}
Как вы можете видеть в приведенном выше примере, у меня есть пустой while
l oop в (что будет) строке 10 для принудительного предоставления гарантии isSuccessful
- это присвоение значения на основе результата DownloadFileThread
перед повторной проверкой условия в while
l oop.
Считается ли плохой практикой делать такие вещи? Есть ли лучший подход или правильный способ сделать это?
Хотя приведенный выше код дает действительный результат, я не совсем горжусь кодом, который у меня есть написано ...