Android Kalle网络框架使用指南

网络框架Kalle

在这里插入图片描述
Kalle开源地址:https://github.com/yanzhenjie/Kalle
Kalle文档地址:http://yanzhenjie.github.io/Kalle

普通Url get请求封装

public static void getData(String pUrl, KalleCustomConfiguration.ObjectCallback pObjectCallback) {
        KalleCustomConfiguration.getKalle(pUrl, pObjectCallback);
    }
import com.orhanobut.logger.Logger;
import com.yanzhenjie.kalle.Kalle;
import com.yanzhenjie.kalle.simple.Callback;
import com.yanzhenjie.kalle.simple.SimpleResponse;

/**
 * @author 小红妹
 * @time 19/05/05
 */
public class KalleCustomConfiguration {

    public static void getKalle(String url, final ObjectCallback callback) {

        Kalle.get(url)
                .perform(new Callback<String, String>() {

                    /**
                     * 请求开始了,可以显示个dialog。
                     */
                    @Override
                    public void onStart() {

                    }

                    /**
                     * 请求响应了。
                     * //UserInfo user = response.succeed();
                     * @param response
                     */
                    @Override
                    public void onResponse(SimpleResponse<String, String> response) {

                        //判断数据是否为空
                        if(response.isSucceed()) {
                            // 业务成功,拿到业务成功的数据。
                            if (callback != null) {
                                callback.onSuccess(response.succeed());
                            }
                        } else {
                            // 业务失败,拿到业务失败的数据。
                            String message = response.failed();
                            Logger.e("服务器错误:" + message);
                        }

                    }

                    /**
                     * 请求发生异常了。
                     * @param e
                     */
                    @Override
                    public void onException(Exception e) {
                        callback.onFailed(e.toString());
                    }

                    /**
                     * 请求被取消了。
                     */
                    @Override
                    public void onCancel() {

                    }

                    /**
                     * 请求结束了,可以关闭之前显示的dialog。
                     */
                    @Override
                    public void onEnd() {

                    }
                });
    }

    public interface ObjectCallback {

        /**
         * 成功
         * @param pS 返回数据
         */
        void onSuccess(String pS);

        /**
         * 失败
         * @param err 错误原因
         */
        void onFailed(String err);

    }
}

下载功能:

 @OnClick(R.id.bt_details_download)
    public void onViewClicked() {
        Kalle.Download.get(mDownloadUrl)// /sdcard
                .directory(getPath())// /RingTone
                .fileName("我的眼里.mp3")
                .perform(new Callback() {
                    @Override
                    public void onStart() {
                        // 请求开始了。
                        Logger.e("请求开始了");
                    }

                    @Override
                    public void onFinish(String path) {
                        // 请求完成,文件路径:path。
                        Logger.e("文件路径:"+path);
                        Toast.makeText(DetailsActivity.this, "文件路径:"+path, Toast.LENGTH_SHORT).show();
                    }

                    @Override
                    public void onException(Exception e) {
                        // 请求发生异常了。1.不存在这个文件夹,2.不支持大写英文包名,
                        Logger.e("请求发生异常了:"+e);
                        Toast.makeText(DetailsActivity.this, "请求发生异常了:"+e, Toast.LENGTH_SHORT).show();
                    }

                    @Override
                    public void onCancel() {
                        // 请求被取消了。
                        Logger.e("请求被取消了");
                    }

                    @Override
                    public void onEnd() {
                        // 请求结束了。
                        Logger.e("请求结束了");
                        Toast.makeText(DetailsActivity.this, "下载完成", Toast.LENGTH_SHORT).show();
                    }
                });
    }

    /**
     * 如何获取放置自己应用包名对应的扩展存储目录路径 ?
     * App在手机上保存文件或者缓存数据时,应该遵守以下几点:
     * 1.不要随意占用用户的内置存储。
     * 2.不要随意在SD卡上新建目录,应该放置自己应用包名对应的扩展存储目录下,卸载App时可以被自动清除。
     * 3.对占用的磁盘空间有上限,并按照一定的策略进行清除。
     * @return
     */
    public String getPath() {
        String path = null;
        File file = new File(Environment.getExternalStorageDirectory().toString()+File.separator+"RingTone");
        if (!file.exists()) {

            //文件夹不存在,就创建一个新文件夹
            file.mkdir();
            System.out.println("文件夹已经创建了");
            Toast.makeText(DetailsActivity.this, "文件夹已经创建成功", Toast.LENGTH_SHORT).show();
            path = file.getAbsolutePath();

        } else {
            path = file.getAbsolutePath();
            System.out.println("文件已经存在");
            Toast.makeText(DetailsActivity.this, "文件夹已经存在", Toast.LENGTH_SHORT).show();
        }
        return path;
    }

更多功能后续补上。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
作为一个全栈开发人员,你将承担设计、开发和维护应用程序的全过程,从前端到后端,具体职责包括: 1. 前端开发:使用HTML、CSS和JavaScript等前端技术,参与设计和开发用户界面,并确保用户体验良好。 2. 后端开发:使用服务器端编程语言(如Java、Python、Node.js等)和数据库技术,开发和维护应用程序的后端逻辑和数据存储。 3. 数据库管理:设计和优化数据库架构,确保数据的安全性、完整性和高效性。 4. API开发:设计和实现应用程序的接口,与前端进行数据交互和通信。 5. 安全和性能优化:负责应用程序的安全性,防范潜在的安全威胁,并进行性能优化,提高系统的响应速度和可扩展性。 6. 故障排查与修复:对应用程序中出现的故障进行分析、排查和修复,确保系统正常运行。 7. 技术研究与评估:跟踪最新的全栈开发技术和行业趋势,评估其在项目中的应用价值。 8. 文档编写:编写技术文档、用户手册等相关文档,记录系统的设计和使用说明。 9. 团队合作:与其他开发人员、测试人员和项目经理密切合作,共同推进项目的进展。 作为全栈开发人员,你需要具备扎实的前端和后端开发技能,熟悉常用的前端和后端框架,了解数据库管理和API设计的基本原理。同时,你还需要具备良好的沟通能力、解决问题的能力、团队合作精神和持续学习的意愿,以不断提升自己的技术水平和承担更多的责任。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值