您好,登錄后才能下訂單哦!
這期內(nèi)容當中小編將會給大家?guī)碛嘘P如何正確的使用SimpleCommand框架,文章內(nèi)容豐富且以專業(yè)的角度為大家分析和敘述,閱讀完這篇文章希望大家可以有所收獲。
使用場景:
此框架并不適合于短時間內(nèi)有大量請求的場景,比較適合于并發(fā)執(zhí)行4~6個異步請求
工程目錄介紹:
在SimpleCommand整個工程目錄下,有三個比較重要的module:app、sample、simplecommand
simplecommand:
這個是最重要的一個依賴module,所有核心功能都是在此module種完成的。主要包括以下幾個核心類:
Command:這個類是所有Command執(zhí)行者的父類。其中包含3個主要的核心方法:
start–此方法會啟動CommandService服務,并在子線程中執(zhí)行耗時操作
execute–在CommandService中回調(diào)到的方法,一般將耗時操作放在此方法中執(zhí)行
notifuListeners–通知所有的ResultListener
app:
在app module里主要是做演示功能。通過module dependency依賴到了simplecommand module。然后自定義NetworkCommand實現(xiàn)請求網(wǎng)絡數(shù)據(jù)并顯示到UI界面
sample:
是一個比較完整的案例演示module。通過添加simplecommand.aar包實現(xiàn)網(wǎng)絡請求功能。具體的使用方法請繼續(xù)往下看!
使用步驟:以下步驟是以網(wǎng)絡請求功能作為演示Demo
1 在新建的app module中新建libs文件夾,并將sample的libs中的simplecommand.aar拷貝到此libs文件夾下
2 在你自己新建的app module的build.gragle中的android塊中添加如下語句:
repositories { flatDir { dir 'libs' //注意:需要提前在app module中創(chuàng)建出libs文件夾 } }
3 在app module的build.gradle的dependencies中添加如下依賴:
compile 'com.squareup.okhttp3:okhttp:3.3.1' compile 'com.jakewharton.picasso:picasso2-okhttp3-downloader:1.1.0' compile (name: 'simplecommand', ext: 'aar')
4 新建HumourCommand(類名可以自己根據(jù)業(yè)務隨便取), 并集成NetworkCommand類,具體代碼如下:
package com.danny_mcoy.commandlibdemo; import android.content.Context; import android.net.Uri; import android.os.Parcel; import com.danny_mcoy.simplecommad.cmd.network.NetworkCommand; import com.danny_mcoy.simplecommad.log.Logger; import com.squareup.okhttp.Request; /** * Created by Danny_姜新星 on 3/8/2017. */ public class HumourCommand extends NetworkCommand { @Override protected String buildUrl(Context context) { Uri.Builder builder = Uri.parse("http://api.laifudao.com") .buildUpon(); builder.appendEncodedPath("open/xiaohua.json"); Logger.e("JIANG", "url is " + builder.toString()); return builder.toString(); } @Override protected Request getRequest(String url) { return new Request.Builder() .url(url) .build(); } public static final Creator<HumourCommand> CREATOR = new Creator<HumourCommand>() { @Override public HumourCommand createFromParcel(Parcel source) { return new HumourCommand(); } @Override public HumourCommand[] newArray(int size) { return new HumourCommand[size]; } }; }
5 HumourCommand創(chuàng)建好之后, 就可以在MainActivity中使用了,通過實現(xiàn)一個Button的點擊事件btnClick開始 :
package com.danny_mcoy.commandlibdemo; import android.os.Handler; import android.support.v7.app.AppCompatActivity; import android.os.Bundle; import android.view.View; import android.widget.TextView; import com.danny_mcoy.simplecommad.extra.Params; import com.danny_mcoy.simplecommad.log.Logger; import com.danny_mcoy.simplecommad.receiver.AppResultReceiver; public class MainActivity extends AppCompatActivity implements AppResultReceiver.ResultListener { private TextView textView; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); textView = ((TextView) findViewById(R.id.text_Main)); } public void btnClick(View view) { HumourCommand apiCommand = new HumourCommand(); AppResultReceiver receiver = new AppResultReceiver(new Handler(), this); apiCommand.start(this, receiver); } @Override public void onResultSuccess(Bundle resultData) { if (null != resultData) { String body = resultData.getString(Params.CommandMessage.EXTRA_BODY); Logger.e("JIANG", " body is " + body); textView.setText(body); } } @Override public void onResultFailed(Bundle resultData) { Logger.e("JIANG", " failed"); } @Override public void onResultProgress(Bundle resultData) { Logger.e("JIANG", " progress"); } }
上述就是小編為大家分享的如何正確的使用SimpleCommand框架了,如果剛好有類似的疑惑,不妨參照上述分析進行理解。如果想知道更多相關知識,歡迎關注億速云行業(yè)資訊頻道。
免責聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權內(nèi)容。