Android_Okgo网络请求增加自定义的DialogCallBack

Android 通过自定义Dialog来理解接口回调callback 通过简单的自定义Dialog来理解接口回调callback机制 立即下载

     发送网络请求时,可能因为网络较慢或上传文件较大,导致后台加载时间过长,为了优化用户体验,可以给用户一个网络正在请求的dialog提示.提示用户"正在加载".但是每次请求网络都new 一个Dialog,并在网络请求的回调中去show 和dismiss显然代码太冗余,因此使用okgo时,可以自定义一个继承StringCallBack的DialogCallBack,在每次开始请求时提示用户,请求成功或失败后dismiss

使用前必须选依赖Okgo

    源码如下

public abstract class DialogCallBack extends StringCallback {

    ProgressDialog dialog;

    public DialogCallBack(Context activity){
        super();
        initDialog(activity);
    }

    private void initDialog(Context activity) {
        if (dialog == null){
            dialog = new ProgressDialog(activity);
            dialog.requestWindowFeature(Window.FEATURE_NO_TITLE);
            dialog.setCanceledOnTouchOutside(false);
            dialog.setProgressStyle(ProgressDialog.STYLE_SPINNER);
            dialog.setMessage("加载中...");
        }
    }

    @Override
    public void onStart(Request<String, ? extends Request> request) {
        super.onStart(request);
        if (dialog != null && !dialog.isShowing()){
            dialog.show();
        }
    }

    @Override
    public void onFinish() {
        super.onFinish();
        if (dialog != null && dialog.isShowing()){
            dialog.dismiss();
            dialog = null;
        }
    }

    @Override
    public void onError(Response<String> response) {
        super.onError(response);
        if (!NetUtil.isNetWorkEnable(dialog.getContext())){
            ToastUtil.showToast(dialog.getContext(),"网络异常");
            if (dialog.isShowing()){
                dialog.dismiss();
                dialog = null;
            }
        }
    }
}

调用方法:

      OkGo.<String>post(IUrls.GET_NEXT_XUANDAO)
                .params("caseId", caseId)
                .params("userId", userId)
                .execute(new DialogCallBack(context) {
                    @Override
                    public void onSuccess(Response<String> response) {
                       
                    }

                    @Override
                    public void onError(Response<String> response) {
                      
                    }
                });



为 ABAP BSP 与 ICF 量身打造的错误页实践:从 CX_ROOT 到 SICF 的端到端落地指南 摘要 本文系统讲解SAP ABAP平台中BSP与ICF层的错误页定制方法。在BSP层,通过标记错误页属性和绑定ERROR_OBJECT异常对象,实现友好的错误展示与日志记录。ICF层通过SICF事务码统一配置错误页、登录与登出逻辑,支持服务树继承。文章包含可直接落地的代码示例,并针对现代Fiori架构给出演进建议,帮助开发者提升用户体验与系统安全性。 阅读详情

相关推荐

SecureCRT 9.0最新版安装与激活全攻略(附驱动识别技巧)

本文提供SecureCRT 9.0最新版的详细安装与激活指南,并重点解析了嵌入式开发中串口连接的硬件驱动识别技巧。内容涵盖从安全获取软件、解决USB转串口驱动兼容性问题,到配置SSH与串口会话的完整流程,旨在帮助开发者和工程师高效部署并精通使用这款终端仿真利器。

star的博客 410

Android Studio 插件开发2、网络请求、创建dialog、trello获取cardId等

然后取出来第一个参数 那么这个参数就是看板咯。看板的cards的 列表id就是这个。创建一个dialog 并且展示布局。这个用的是 fromListId。出来弹框我们先看到的就是布局。moveCard 还没用到。这个loadCards用到了。程序底部导入网络请求api。点击这里就出来一个弹框。view点击产生的回调。这个id可获取有点费劲。

丿灬安之若死 712

ABtest描述统计功效

我们在面试数据分析时,常常会问到如何确定样本量的问题,会有一个指标:统计功效(power),或者是1-β 统计功效会影响实验的可信度,甚至会影响实验所需的样本量,要了解统计功效,首先要理解两类统计错误 假如我们做了一个AB实验,且两组用户的数据均值为μ1和μ2,我们会有两个初始假设: H0:两个实验组的数据没有差别(μ1=μ2),这个假设也叫“零假设”,也叫原假设 H1:两个实验组之间的数据存在差别(μ1≠μ2),这个假设也叫“非零假设”,也叫备择假设 定义两类错误: 实验本身没有效应,但我们觉

qq_38134556的博客 898

关于设置OkGo自定义回调JsonCallback的相关整理

基础通用版 1,通用的OkGo数据解析方法: public abstract class JsonCallback<T> extends AbsCallback<T> { private Type type; private Class<T> clazz; public JsonCallback() { } publ...

智玲君 1870

基于Python的房地产评估数据抓取与分析 —— 房价走势与市场报告

在房地产行业中,了解和分析房产价格的变化趋势、各个地区的房价差异以及市场评价报告,可以帮助投资者、购房者以及政策制定者做出更加明智的决策。本文介绍了如何使用Python爬虫技术抓取房地产平台上的房产评估报告、价格走势等数据,并对抓取的数据进行分析。通过这些技术,您可以自动化抓取房地产平台的数据,分析房价走势,获取市场报告,为房地产投资决策提供数据支持。假设我们要从链家网抓取某个房产的价格、房产描述以及历史成交价格,首先需要获取目标房产页面的URL,并发送HTTP请求。伪装为常见浏览器,避免被识别为爬虫。

2201_76125261的博客 846

SAP-ABAP:字符与数值类型转换详细指南

SAP-ABAP:字符与数值类型转换详细指南

baidu_35680696的博客 1475

安卓项目实战之强大的网络请求框架okGo使用详解(一):实现get,post基本网络请求,下载上传进度监听以及对Callback自定义的深入理解

1.添加依赖 //必须使用 compile 'com.lzy.net:okgo:3.0.4' //以下三个选择添加,okrx和okrx2不能同时使用,一般选择添加最新的rx2支持即可 compile 'com.lzy.net:okrx:1.0.2' compile 'com.lzy.net:okrx2:2.0.2' compile 'com.lzy.net:okserver:2.0.5' ...

智玲君 6937

YOLOv13改进:卷积魔改 | 动态蛇形卷积(Dynamic Snake Convolution),实现暴力涨点

如何跟YOLOv13结合:替代YOLOv13的DS-C3K2

①答疑群聊服务;②YOLO大模型知识问答系统;③计算机视觉论文生成智能体; 364

安卓项目实战之强大的网络请求框架okGo使用详解(二):深入理解Callback之自定义JsonCallback

更新中。。。

智玲君 6456

CGAL 网格等高线计算

CGAL 网格等高线计算

dayuhaitang1的博客 452

【YOLO26实战全攻略】09——YOLO26多目标跟踪实战宝典:从原理到智慧园区人流统计全流程

多目标跟踪(MOT)是视频分析的核心技术,解决了单帧检测无法关联目标身份的痛点。本文基于YOLO26轻量化检测模型与ByteTrack跟踪算法,从新手视角出发,系统讲解多目标跟踪的核心原理、环境搭建、实操步骤与工程落地。内容涵盖ByteTrack分层关联策略解析、YOLO26集成跟踪的一行代码实现、配置参数调优、区域计数、轨迹数据提取与热力图可视化,最终通过智慧园区人车流量统计虚拟案例,完整呈现从技术原理到实际应用的全流程。本文注重实用价值,所有代码可直接复现,参数配置附带场景化建议,帮助新手快速上手。

专注于人工智能、软件开发、工控自动化、工厂数字化及智能化等领域,希望和大家共同进步! 354

android okgo请求2次,Android studio使用OKGO的POST请求访问http失败的解决方法

前几天在旧手机(版本是Android7)上调试一个app,用OKGO的post请求连接服务器登录一直很正常。今天旧手机不在身边,用自己的手机调试,就出现网络请求失败的问题,弹onError()里自己写的Toast提示。反复检查了手机确实没有对app关闭网络权限,USB调试都打开了。于是在网上搜索了一些方法,尝试后问题得到解决。在这记录一下这两种解决方案。1.targetSdkVersion 降到2...

weixin_34545862的博客 1026

【第三方互联】3、腾讯QQ授权第三方登录

当我们创建的 QQ 互联应用成功后,我们便可以开始使用该应用来实现 QQ 互联 一、获取 APP ID 和 APP Key 1、找到我的应用 2、点击应用,进入详情 这样,我们就获取到了 APP ID 和 APP Key 二、进行开发 1、将 APP ID 、APP Key,以及该应用的信息放入项目中的配置文件中,我使用的是SpringBoot,我放在了 application.y...

JACKAL 22万+

android 解决同一界面多个网络请求导致dialog对话框反复显示消失问题

PS : 平时遇到问题到网上搜索博客,作者总是先列出方案1,方案2,方案3, 最后才把最优的解决方式放到最后. 遇到这种情况我总是很焦急, 我心说: “我这得赶紧解决问题,哪有空看你分析啊”, 后来倒是明白了,把自己解决问题的思路写下来,实际上是学习了这种思维方式. 所以我也准备里这么做. PS: 着急的可以直接看最后的解决方案. 问题: 场景: 当一个界面同一时间有七八个甚至十几个网络请求,这个时候对话框是如何展示的. 我的项目中效果就是对话框只显示一次就消失了. 因为我采取的方案是如果当对话框有并发创

六道对穿肠的学习之旅 3021

SIMATIC S7-1200, S7-1500 PID 控制[手册]

SIMATIC S7-1200, S7-1500 PID 控制[手册]

NTscan扫描工具

ntscan是一个扫描器,可以扫描没有密码和弱密码的共享,先到配置文件中填写猜测的用户名和密码,扫描过程中右侧出现的是扫描日志。

回调函数的使用

用window.openDialog打开新增页面  callback 和callbackTwo 为两个回调函数 function newOrdersDictionary(){     E_ShowLoding();    var dialog = window.openDialog("newOrdersDictionary",baseUrl + "/emr/sysdata/ordersd

IBelieve的专栏 752

jdk-8u144-linux-x64.tar.gz.

该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包

直播APP开发时,在Android 使用OKGO实现网络图片下载的主要方法

OKGO对于android开发人员来说,应该说是直播APP开发过程中非常熟悉的网络框架之一,该库是基于 Http 协议,封装了 OkHttp 的网络请求框架,比 Retrofit 更简单易用,支持 RxJava,RxJava2,支持自定义缓存,支持批量断点下载管理和批量上传管理功能。在直播APP开发时,使用它来实现对网络图片的下载,步骤非常简单。 最主要方法就是: OkGo.<File&gt...

云豹网络科技 1370

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

Android中封装网络请求时的提示框

Android中封装网络请求时的提示框

zhangsp_dev_dxdc的博客 341

OKGO

有码走遍天下 无码寸步难行 implementation ‘com.lzy.net:okgo:3.0.4’ okgo依赖 //post请求数据 public void dopost(){ HashMap<String, String> map = new HashMap<>(); map.put(“phone”,“18233790750”); map.put(“pass...

weixin_45191496的博客 369

Android强大的网络请求框架----OkGo

OkGo的主要功能: 基本的get、post、put、delete、head、options、trace、patch八种请求 支持upString,upJson,upBytes,upFile等up类方法上传特定数据 支持一个key上传一个文件,也可以一个key上传多个文件,也可以多文件和多参数一起上传 大文件下载和下载进度回调 大文件上传和上传进度回调 支持自定义超时自动重连次数 支持https访...

你的外祖父的博客 2614

electron踩坑之dialog中的callback

踩坑分析  之前版本使用dialog时选择文件时,可以加入callback,来获取被选择文件的路径,而electron10更新后发生了改动,采用了Promise对象来获取结果。  electron 10之前我们获取文件路径,只需加入callback即可,也就是下述写法,且之前返回的data结果直接是文件的路径。 openDialogDom.onclick = function(){ remote.dialog.showOpenDialog({ properties:['openFi

认定的总要想办法去完成。 2508

OkGo基本使用记录

首先在项目中添加依赖compile 'com.lzy.net:okgo:3.0.4'创建加载Dialog/** * 自定义的加载进度对话框 */ public class CustomProgressDialog extends Dialog { private static CustomProgressDialog customProgressDialog = null; ...

Forward 2298

Android中发送网络请求,弹出Dialog崩溃问题解决

现象: Activity 在 onCreate 时候,发送异步 http 请求。Http 请求会回调三种方法:onStart,onFinish,onCancel。 我在 onStart 中弹出Dialog,Dialog需要参数 Context,于是用当前 Activity。 但是,App退出,再次打开,于是崩溃了! 分析原因: 查看日志,分析原因,是这样的: 1、App退出时候,应没有

u012536353的专栏 3104

OkHttpUtils一个专注于让网络请求更简单的框架

1.支持的常用功能 一般的 get,post,put,delete,head,options请求基于Post的大文本数据上传,postString(),postJson()等多文件和多参数统一的表单上传(允许监听上传进度)支持一个key上传一个文件,也可以一个Key上传多个文件大文件下载和下载进度回调大文件上传和上传进度回调支持cookie的内存存储和持久化存储,支持传递自定义cookie提

hehe307的专栏 1万+

简单的封装OKGO回调,自动显示网络连接时的Dialog

简单的封装,做个笔记,大神绕过!当然,有好的建议欢迎提出,若有不足请指教。目的:每次请求网络时,一般都会有个progress的弹窗显示,让用户清除我们正在连接加载网络,而不是无反应。实现就直接先上图,再上代码了,界面一点都不丑重写的callback/** * @author zgq * @version 1.0 * @describe -- 重写callBack ,统一dialog * @...

qq944639839的博客 1200

OkGo(get,post)网络请求

【代码】OkGo(get,post)网络请求。

2303_78363482的博客 859

js回调函数

js的回调函数是非常之重要的,这是异步编程的一大特点,可能有的程序员不是很喜欢,比如java程序员觉得头很大。 但是回调函数作为js的一大特性,用好了会感觉非常好。 回调函数就是高阶函数,所谓高阶函数就是: 1方法接收的参数可以是function; 2方法也可以返回function; 例如 function test(){                 alert(1);  

springalsky@gmail.com 838
上一篇: Android_沉浸式状态栏
下一篇: Android_SqLite数据库的创建与使用
ParkSiHoo_
博客等级 码龄10年 20粉丝 24原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值