为了账号安全,请及时绑定邮箱和手机立即绑定

以不同的间隔多次重试代码段

以不同的间隔多次重试代码段

开满天机 2021-12-22 18:55:42
我想为我的 android 应用程序代码的一部分使用一个算法,如果它不满足不同时间间隔的条件,它将一次又一次地执行特定的代码段。简而言之,在不同的时间间隔后多次重试代码。例如,我正在上传一些字符串数据,当有互联网连接时我进行网络连接检查,当没有互联网时,它应该在1分钟后自动再次检查。如果是肯定的,数据被上传,如果不是,它应该在接下来的 3 分钟后重试,第三次也是如果是肯定的,数据被上传,如果不是,它应该在接下来的 5 分钟后做最后的检查,如果它不能得到network 那么它应该显示 toast 没有网络。如何用一个简单的算法做到这一点?这里以网络连接场景为例。我想要“重试”的算法,正如我在那里解释的那样。提前致谢。
查看完整描述

2 回答

?
犯罪嫌疑人X

TA贡献2080条经验 获得超4个赞

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


使用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();

}

至于你想怎么写你的检查逻辑,我会留给你


查看完整回答
反对 回复 2021-12-22
?
吃鸡游戏

TA贡献1829条经验 获得超7个赞

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


查看完整回答
反对 回复 2021-12-22
  • 2 回答
  • 0 关注
  • 147 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信