MVP+Retrofit+dagger2+RxAndroid框架整合
1. MVP模式:主要實在傳統的MVC模式上新增了一層presenter,作為View與Model互動的中間紐帶,處理與使用者互動的負責邏輯。
2. Retrofit:是Square公司開發的一款針對Android網路請求的框架,Retrofit2底層基於OkHttp實現的。
3. dagger2:簡而言之就是一套Android上使用的依賴注入框架。
4. RxAndroid:RxJava的Android版,是一套實現非同步的框架。
5. lambd表示式:用來代替匿名的內部類,讓程式碼變的簡單、而且可讀、最重要的是程式碼量也隨之減少很多。
6. icepick:對activity以及fragment 的狀態的儲存和恢復。
原始儲存/恢復資料的寫法:
onCreate:
if(savedInstanceState!=null)
mCodeData=savedInstanceState.getInt("code");
@Override protected void onSaveInstanceState(Bundle outState) {
outState.putInt("code",mCodeData); super.onSaveInstanceState(outState);
}
icepick:
Icepick.restoreInstanceState(this, savedInstanceState);
@Override protected void onSaveInstanceState(Bundle outState) { Icepick.saveInstanceState(this, outState);
super.onSaveInstanceState(outState);
}
7. butterknife:這個開源庫可以讓我們從大量的findViewById()和setonclicktListener()解放出來,並且使用Android Butterknife Zelezny外掛可以快速生成XML檔案的各種控制元件對應java程式碼。
首先,你需要在OnCreate初始化方法中先繫結佈局檔案:
OnCreate():
ButterKnife.bind(this); //繫結佈局檔案
@bindView(R.id.text1)TextView text1; //繫結需要操作的控制元件
@OnClick({R.id.button1, R.id.button2, R.id.button3}) //設定事件
public void onClick(View view) { switch (view.getId()) {
case R.id.button1: break;
case R.id.button2: break;
case R.id.button3: break;
}}
8. 我們需要對這套框架進行配置;