欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

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

 更新時間:2017年10月20日 09:31:33   作者:Danny_姜  
這篇文章主要為大家詳細介紹了SimpleCommand框架以及簡單使用,具有一定的參考價值,感興趣的小伙伴們可以參考一下

簡介:

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

使用場景:

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

工程目錄介紹:

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

simplecommand:

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

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

app:

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

sample:

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

使用步驟:以下步驟是以網絡請求功能作為演示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(類名可以自己根據業(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中使用了,通過實現一個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是一個請求結果接收器, 當我們調XXXCommand.start方法時,需要傳入一個AppResultReceiver。當請求結果返回之后,就會調用AppResultReceiver中的listener相應方法:onResultSuccess、onResultFailed等等

框架github地址: SimpleCommand框架

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持腳本之家。

相關文章

  • android橫豎屏切換不重啟activity解決方案

    android橫豎屏切換不重啟activity解決方案

    部分網友會發(fā)現Activity在切換到后臺或布局從橫屏LANDSCAPE切換到PORTRAIT,會重新切換Activity會觸發(fā)一次onCreate方法,使用其他的方法同樣可以實現
    2012-11-11
  • Android編程基礎之簡單Button事件響應綜合提示控件Toast應用示例

    Android編程基礎之簡單Button事件響應綜合提示控件Toast應用示例

    這篇文章主要介紹了Android編程基礎之簡單Button事件響應綜合提示控件Toast應用,結合實例形式分析了Button事件響應與Toast提醒的相關操作技巧,需要的朋友可以參考下
    2016-10-10
  • 解析Android截取手機屏幕兩種實現方案

    解析Android截取手機屏幕兩種實現方案

    這篇文章主要介紹了解析Android截取手機屏幕兩種實現方案,非常具有實用價值,需要的朋友可以參考下
    2017-04-04
  • 詳解android adb常見用法

    詳解android adb常見用法

    這篇文章主要介紹了詳解android adb常見用法,對android開發(fā)測試的同學參考下
    2021-04-04
  • Android?ViewPager?+?Fragment實現滑動頁面效果

    Android?ViewPager?+?Fragment實現滑動頁面效果

    本文通過實例代碼較詳細的給大家介紹了Android?ViewPager?+?Fragment實現滑動頁面效果,需要的朋友可以參考下
    2018-06-06
  • Android實現日歷控件示例代碼

    Android實現日歷控件示例代碼

    本篇文章主要介紹了Android實現日歷控件示例代碼,實例講解了Android日期與時間相關控件的相關使用技巧,具有一定參考價值,需要的朋友可以參考下
    2017-03-03
  • Android撥號盤 支持T9搜索和號碼搜索等撥號盤案例

    Android撥號盤 支持T9搜索和號碼搜索等撥號盤案例

    之前做通訊錄軟件,其中在做撥號盤的時候一直為怎么實現T9輸入煩惱,不過最后終于是實現了,看社區(qū)內好像也有不少朋友需要,在此分享一下
    2012-12-12
  • Android Studio 如何刪除/新建一個module(圖文教程詳解)

    Android Studio 如何刪除/新建一個module(圖文教程詳解)

    這篇文章主要介紹了Android Studio 如何刪除/新建一個module,此方法也會將該module從你的硬盤中刪除,如果直接右鍵會發(fā)現沒有delete選項,本文通過圖文并茂的形式給大家介紹的非常詳細,需要的朋友參考下吧
    2020-03-03
  • android 全屏去掉底部虛擬導航欄的方法

    android 全屏去掉底部虛擬導航欄的方法

    今天小編就為大家分享一篇android 全屏去掉底部虛擬導航欄的方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2018-07-07
  • Android基礎之獲取LinearLayout的寬高

    Android基礎之獲取LinearLayout的寬高

    LinearLayout是線性布局控件,它包含的子控件將以橫向或豎向的方式排列,按照相對位置來排列所有的widgets或者其他的containers,超過邊界時,某些控件將缺失或消失。有的時候,我們需要想獲取LinearLayout寬高,下面通過這篇文章來跟著小編一起學習學習吧。
    2016-11-11

最新評論