中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

如何正確的使用SimpleCommand框架

發布時間:2021-03-30 16:06:12 來源:億速云 閱讀:186 作者:Leah 欄目:移動開發

這期內容當中小編將會給大家帶來有關如何正確的使用SimpleCommand框架,文章內容豐富且以專業的角度為大家分析和敘述,閱讀完這篇文章希望大家可以有所收獲。

使用場景:

此框架并不適合于短時間內有大量請求的場景,比較適合于并發執行4~6個異步請求

工程目錄介紹:

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

simplecommand:

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

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

app:

在app module里主要是做演示功能。通過module dependency依賴到了simplecommand module。然后自定義NetworkCommand實現請求網絡數據并顯示到UI界面

sample:

是一個比較完整的案例演示module。通過添加simplecommand.aar包實現網絡請求功能。具體的使用方法請繼續往下看!

使用步驟:以下步驟是以網絡請求功能作為演示Demo

1 在新建的app module中新建libs文件夾,并將sample的libs中的simplecommand.aar拷貝到此libs文件夾下

2 在你自己新建的app module的build.gragle中的android塊中添加如下語句:

repositories {
 flatDir {
  dir 'libs' //注意:需要提前在app module中創建出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(類名可以自己根據業務隨便取), 并集成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創建好之后, 就可以在MainActivity中使用了,通過實現一個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框架了,如果剛好有類似的疑惑,不妨參照上述分析進行理解。如果想知道更多相關知識,歡迎關注億速云行業資訊頻道。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

寿宁县| 尚义县| 元氏县| 彰武县| 华阴市| 财经| 建水县| 扎赉特旗| 南丹县| 兴安盟| 册亨县| 辽宁省| 邵阳县| 徐水县| 修武县| 若尔盖县| 鄂托克前旗| 平远县| 盐池县| 宁德市| 临高县| 游戏| 南和县| 黄骅市| 库尔勒市| 岢岚县| 吉木萨尔县| 甘洛县| 内江市| 肇庆市| 韶关市| 永吉县| 隆尧县| 澄江县| 宜昌市| 南皮县| 都江堰市| 周宁县| 南开区| 年辖:市辖区| 东阿县|