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() {
}
});
}
}