1

我想为我的android应用程序代码的一部分提供一个算法,如果它不满足不同时间间隔的条件,它将一次又一次地执行特定的代码段。简而言之,在不同的时间间隔后多次重试代码。

例如,我正在上传一些字符串数据,当有互联网连接时我会进行网络连接检查,当没有互联网时,它应该会在 1 分钟后自动再次检查。如果是肯定的,数据已经上传,如果不是,它应该在接下来的 3 分钟后重试,第三次如果是肯定的,数据已经上传,如果不是,它应该在接下来的 5 分钟后做最后的检查,然后如果它不能得到网络然后它应该显示吐司没有网络。

如何用简单的算法做到这一点?

这里的网络连接场景仅作为示例。正如我在那里解释的那样,我想要“重试”的算法。

提前致谢。

4

2 回答 2

1

首先,您必须声明一个方法来检查是否有互联网连接。

使用ConnectivityManagerNetworkInfo

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();
}

至于你想如何写你的检查逻辑,我会留给你

于 2018-11-01T09:07:10.727 回答
0

使用 Handler,Timer 可以提供帮助。

于 2020-05-06T17:20:37.623 回答