public class RetrofitManager {
private static RetrofitManager retrofitManager;
private final Retrofit retrofit;
private RetrofitManager(){
Retrofit.Builder builder = new Retrofit.Builder();
builder.baseUrl(Api.BASE_URL);
builder.addCallAdapterFactory(RxJava2CallAdapterFactory.create());
builder.addConverterFactory(GsonConverterFactory.create());
builder.client(OkHttpUtils.getInstance().getmOkHttpclient());
retrofit = builder.build();
}
public static RetrofitManager getInstance(){
if (retrofitManager==null){
synchronized (RetrofitManager.class){
if (retrofitManager==null){
retrofitManager = new RetrofitManager();
}
}
}
return retrofitManager;
}
private T createService(Class service){
T t=retrofit.create(service);
return t;
}
public ApiService creatService(){
ApiService apiService = retrofit.create(ApiService.class);
return apiService;
}
}
/////okhttp的簡單使用
public class OkHttpUtils {
private static OkHttpUtils okHttpUtils;
private OkHttpClient okhttpclient;
private OkHttpUtils(){
OkHttpClient.Builder builder = new OkHttpClient.Builder();
builder.connectTimeout(5000,TimeUnit.MILLISECONDS);
builder.readTimeout(5000,TimeUnit.MILLISECONDS);
builder.writeTimeout(5000,TimeUnit.MILLISECONDS);
builder.addInterceptor(new HttpLoggingInterceptor(new HttpLoggingInterceptor.Logger() {
@Override
public void log(String message) {
Log.i("xxx",message);
}
}).setLevel(HttpLoggingInterceptor.Level.BODY));
okhttpclient = builder.build();
}
public static OkHttpUtils getInstance(){
if (okHttpUtils==null){
synchronized (OkHttpUtils.class){
if (okHttpUtils==null){
okHttpUtils = new OkHttpUtils();
}
}
}
return okHttpUtils;
}
public OkHttpClient getmOkHttpclient(){
return okhttpclient;
}
}
///application初始化數據庫
public static DaoSession daoSession;
@Override
public void onCreate() {
super.onCreate();
initGreenDao("");
}
private void initGreenDao(String s) {
DaoMaster.DevOpenHelper helper = new DaoMaster.DevOpenHelper(this, “aserbao.db”);
SQLiteDatabase writableDatabase = helper.getWritableDatabase();
DaoMaster daoMaster = new DaoMaster(writableDatabase);
daoSession = daoMaster.newSession();
}
//原始化 Model
public class ShowModel {
public void fragoneshow(final HttpDataListener listener){
ApiService apiService = RetrofitManager.getInstance().creatService();
Observable fragone = apiService.fragone();
fragone.observeOn(AndroidSchedulers.mainThread())
.subscribeOn(Schedulers.io())
.subscribe(new Observer() {
@Override
public void onSubscribe(Disposable d) {
}
@Override
public void onNext(FragOneEnity fragOneEnity) {
listener.onDataSuccess(fragOneEnity);
}
@Override
public void onError(Throwable e) {
listener.onFailer(e.getMessage());
}
@Override
public void onComplete() {
}
});
}
}
///////////model中的()參數
public interface HttpDataListener {
void onDataSuccess(T data);
void onFailer(String msg);
}