我想为我的android应用程序代码的一部分提供一种算法,如果它不满足不同时间间隔的条件,它将一次又一次地执行特定的代码段。简单来说,就是在不同的时间间隔后重试代码多次。
例如, 我正在上传一些字符串数据,当有互联网连接时我会进行网络连接检查,而当没有互联网时,它将在1分钟后自动再次检查。如果是肯定的,则上传数据,如果不是,则应在接下来的3分钟内重试;如果是肯定的,则应再次上传数据;如果不是,则应在接下来的5分钟内进行最后检查,如果不能,则进行最后一次检查。网络,那么它应该显示吐司没有网络。
如何使用简单的算法做到这一点?
此处以网络连接方案为例。我要有我在此说明的“重试”算法。
谢谢。
答案 0 :(得分:1)
首先,您必须声明一种方法以检查是否存在Internet连接。
使用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();
}
关于您要如何编写检查逻辑,我会留给您
答案 1 :(得分:0)
使用处理程序,计时器可以提供帮助。