повторить сегмент кода несколько раз с разными интервалами - PullRequest
0 голосов
/ 01 ноября 2018

Я хочу иметь алгоритм для части кода моего приложения для Android, который будет снова и снова выполнять определенный сегмент кода, если он не соответствует условию с разными временными интервалами. простыми словами повторите код несколько раз через разные промежутки времени.

Например, Я загружаю некоторые строковые данные, когда есть подключение к Интернету, я проверяю подключение к сети, а когда нет подключения к Интернету, оно должно автоматически проверяться через 1 минуту. если положительный результат, данные загружаются, и если нет, он должен повторить попытку через 3 минуты, и в третий раз также, если положительный результат, данные загружены, и если нет, он должен выполнить окончательную проверку через следующие 5 минут, а затем, если он не может получить сеть, то он должен показать тост без сети.

Как это сделать с помощью простого алгоритма?

Здесь сценарий сетевого подключения приведен в качестве примера. Я хочу, чтобы алгоритм для «повтора», как я объяснил там.

Заранее спасибо.

1 Ответ

0 голосов
/ 01 ноября 2018

Во-первых, вы должны объявить метод проверки наличия подключения к Интернету.

Использование ConnectivityManager и NetworkInfo

public static boolean hasInternetConnection(final Context context) {
    ConnectivityManager cm = (ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE);
    NetworkInfo ni = cm.getActiveNetworkInfo();
    if (ni == null) {
        return false;
    } else
        return true;
}

Тогда ...

try{
        if(Util.hasInternetConnection(mcontext)){
            //todo

                @Override
                public void onSuccess(String message) {
                   showAlertDialog("Alert",message);
                }

                @Override
                public void onFail(String errorcode, String errormessage) {
                    showAlertDialog("Alert",errormessage);
                }
            });
        }else{
            showInternetRequiredDialog(getString(R.string.title_internet_require), getString(R.string.msg_no_internet_connection_setup));
            return;
        }
    }catch (Exception ex){
        ex.printStackTrace();
}

Что касается того, как вы хотите написать свою логику проверки, я оставлю это на ваше усмотрение

...