温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

如何正确的使用SimpleCommand框架

发布时间:2021-03-30 16:06:12 来源:亿速云 阅读:218 作者: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