国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 系統(tǒng) > Android > 正文

SimpleCommand框架介紹以及簡單使用(一)

2019-10-22 18:25:24
字體:
供稿:網(wǎng)友

簡介:

SimpleCommand是一款輕量級框架??蚣芎苄∫埠苋菀桌斫?。使用這款框架能實現(xiàn)的功能主要是快速集成網(wǎng)絡(luò)請求、圖片請求、文件操作等各種比較耗時的操作。對于網(wǎng)絡(luò)圖圖片請求,內(nèi)部使用的是OkHttp實現(xiàn)

使用場景:

此框架并不適合于短時間內(nèi)有大量請求的場景,比較適合于并發(fā)執(zhí)行4~6個異步請求

工程目錄介紹:

在SimpleCommand整個工程目錄下,有三個比較重要的module:app、sample、simplecommand

simplecommand:

這個是最重要的一個依賴module,所有核心功能都是在此module種完成的。主要包括以下幾個核心類:

Command:這個類是所有Command執(zhí)行者的父類。其中包含3個主要的核心方法:
start–此方法會啟動CommandService服務(wù),并在子線程中執(zhí)行耗時操作
execute–在CommandService中回調(diào)到的方法,一般將耗時操作放在此方法中執(zhí)行
notifuListeners–通知所有的ResultListener

app:

在app module里主要是做演示功能。通過module dependency依賴到了simplecommand module。然后自定義NetworkCommand實現(xiàn)請求網(wǎng)絡(luò)數(shù)據(jù)并顯示到UI界面

sample:

是一個比較完整的案例演示module。通過添加simplecommand.aar包實現(xiàn)網(wǎng)絡(luò)請求功能。具體的使用方法請繼續(xù)往下看!

使用步驟:以下步驟是以網(wǎng)絡(luò)請求功能作為演示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è)務(wù)隨便取), 并集成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"); }}

簡單說明以下:AppResultReceiver是一個請求結(jié)果接收器, 當(dāng)我們調(diào)XXXCommand.start方法時,需要傳入一個AppResultReceiver。當(dāng)請求結(jié)果返回之后,就會調(diào)用AppResultReceiver中的listener相應(yīng)方法:onResultSuccess、onResultFailed等等

框架github地址: SimpleCommand框架

以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持VEVB武林網(wǎng)。


注:相關(guān)教程知識閱讀請移步到Android開發(fā)頻道。
發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
主站蜘蛛池模板: 平和县| 旬邑县| 冀州市| 广平县| 铅山县| 东阿县| 梅河口市| 东宁县| 公主岭市| 郴州市| 南平市| 方正县| 栾城县| 滦平县| 酉阳| 正安县| 常德市| 宁波市| 涪陵区| 修武县| 大安市| 麦盖提县| 仙居县| 长兴县| 尚志市| 五原县| 海宁市| 阳原县| 广丰县| 巴南区| 保亭| 乐陵市| 天长市| 阿荣旗| 灵武市| 阿勒泰市| 伊金霍洛旗| 左云县| 株洲县| 永昌县| 通山县|