HttpVolley+MVP框架

博客提及了MyCrashApp、MyApp,还介绍了HttpVolley以及MVP架构的Contract、Model、Presenter部分,这些内容与信息技术领域的移动开发、后端开发等相关知识有联系。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

MyCrashApp

package com.bawei.lmx.a5_5.utils;

import android.util.Log;

import com.bawei.lmx.a5_5.BuildConfig;

public class MyCrashApp implements Thread.UncaughtExceptionHandler{
    private static final String TAG = "ErrorInformation";
    private static final MyCrashApp ourInstance = new MyCrashApp();

    public static MyCrashApp getInstance() {
        return ourInstance;
    }

    private MyCrashApp() {
    }

    @Override
    public void uncaughtException(Thread t, Throwable e) {
        if (BuildConfig.DEBUG){
            Log.d(TAG, "uncaughtException: "+t.getName()+"错误日志:"+e.getLocalizedMessage());
        }
    }
}

MyApp

package com.bawei.lmx.a5_5.utils;

import android.app.Application;

import com.android.volley.RequestQueue;
import com.android.volley.toolbox.Volley;

public class MyApp extends Application {

    private static RequestQueue requestQueue;

    @Override
    public void onCreate() {
        super.onCreate();
        requestQueue = Volley.newRequestQueue(getApplicationContext());
        Thread.setDefaultUncaughtExceptionHandler(MyCrashApp.getInstance());

    }

    public static RequestQueue getRequestQueue() {
        return requestQueue;
    }
}

HttpVolley

package com.bawei.lmx.a5_5.utils;

import com.android.volley.Request;
import com.android.volley.Response;
import com.android.volley.VolleyError;
import com.android.volley.toolbox.StringRequest;

public class NetVolleyHttp {
    private static final NetVolleyHttp ourInstance = new NetVolleyHttp();

    public static NetVolleyHttp getInstance() {
        return ourInstance;
    }

    private NetVolleyHttp() {
    }

    public void VolleyHttpGet(String url, final VolleyCallBack volleyCallBack) {
        StringRequest getrequest = new StringRequest(Request.Method.GET, url, new Response.Listener<String>() {
            @Override
            public void onResponse(String response) {
                volleyCallBack.Success(response);
            }
        }, new Response.ErrorListener() {
            @Override
            public void onErrorResponse(VolleyError error) {
                volleyCallBack.Error(error);
            }
        });
        getrequest.setTag("testget");
        MyApp.getRequestQueue().add(getrequest);
    }

    public interface VolleyCallBack {
        void Success(String data);

        void Error(VolleyError error);
    }
}

MVP(Contract)

package com.bawei.lmx.a5_5.showmvp;

public interface Contract {
    public interface IShowView {
        void getResultData(String resultdata);

        void getResultDetailsData(String resultdedails);
    }

    public interface IShowModel {
        void ModelResult(String url, ModelCallBack modelCallBack);

        interface ModelCallBack {
            void Success(String result);

            void Error();
        }
    }

    public interface IShowPresenter {
        void attch(IShowView iShowView);

        void detch();

        void mutual(String url);

        void mutualdedails(String url_dedails);

    }
}

MVP(Model)

package com.bawei.lmx.a5_5.showmvp;

import com.android.volley.VolleyError;
import com.bawei.lmx.a5_5.utils.NetVolleyHttp;

public class ShowModel implements Contract.IShowModel {
    @Override
    public void ModelResult(String url, final ModelCallBack modelCallBack) {
        NetVolleyHttp.getInstance().VolleyHttpGet(url, new NetVolleyHttp.VolleyCallBack() {
            @Override
            public void Success(String data) {
                modelCallBack.Success(data);
            }

            @Override
            public void Error(VolleyError error) {
                modelCallBack.Error();
            }
        });
    }
}

MVP(Presenter)

package com.bawei.lmx.a5_5.showmvp;

public class ShowPresenter implements Contract.IShowPresenter {

    private ShowModel showModel;
    Contract.IShowView iShowView;

    @Override
    public void attch(Contract.IShowView iShowView) {
        showModel = new ShowModel();
        this.iShowView = iShowView;
    }

    @Override
    public void detch() {
        if (iShowView != null) {
            iShowView = null;
        }
        if (showModel != null) {
            showModel = null;
        }
        System.gc();
    }

    @Override
    public void mutual(String url) {
        showModel.ModelResult(url, new Contract.IShowModel.ModelCallBack() {
            @Override
            public void Success(String result) {
                iShowView.getResultData(result);
            }

            @Override
            public void Error() {

            }
        });
    }

    //右侧列表展示
    @Override
    public void mutualdedails(String url_dedails) {
        showModel.ModelResult(url_dedails, new Contract.IShowModel.ModelCallBack() {
            @Override
            public void Success(String result) {
                iShowView.getResultDetailsData(result);
            }

            @Override
            public void Error() {

            }
        });
    }
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值