在任意java类中使用aria

从3.4版本开始,Aria支持在任意java类中使用

初始化Aria

在Application调用Aria的初始化方法。

 Aria.init(this);

在module类的构造函数中注册Aria

Aria.download(this).register();

注意事项

在Activity销毁时需要在modlue中调用unRegister销毁事件。 如果不进行销毁操作,将会导致内存泄露!!

如:

如果你在Module.java这个非Activity的类中进行register();那么你应该在Module.java这个类中调用以下方法。

Aria.download(this).unRegister();

View中取消注解

如果你是在自定义的View中注册的Aria,那么你需要在onDetackedFromWindow中取消Aria的注解

@Override
protected void onDetachedFromWindow() {
    Aria.download(this).unRegister();
    super.onDetachedFromWindow();
}

demo

public class AnyRunnModule {
  String TAG = "AnyRunnModule";
  private Context mContext;
  private String mUrl;
  private long mTaskId = -1;

  public AnyRunnModule(Context context) {
    Aria.download(this).register();
    mContext = context;
  }

  @Download.onWait void onWait(DownloadTask task) {
    Log.d(TAG, "wait ==> " + task.getDownloadEntity().getFileName());
  }

  @Download.onPre protected void onPre(DownloadTask task) {
    Log.d(TAG, "onPre");
  }

  @Download.onTaskStart void taskStart(DownloadTask task) {
    Log.d(TAG, "onStart");
  }

  @Download.onTaskRunning protected void running(DownloadTask task) {
    Log.d(TAG, "running");
  }

  @Download.onTaskResume void taskResume(DownloadTask task) {
    Log.d(TAG, "resume");
  }

  @Download.onTaskStop void taskStop(DownloadTask task) {
    Log.d(TAG, "stop");
  }

  @Download.onTaskCancel void taskCancel(DownloadTask task) {
    Log.d(TAG, "cancel");
  }

  @Download.onTaskFail void taskFail(DownloadTask task) {
    Log.d(TAG, "fail");
  }

  @Download.onTaskComplete void taskComplete(DownloadTask task) {
    L.d(TAG, "path ==> " + task.getDownloadEntity().getDownloadPath());
    L.d(TAG, "md5Code ==> " + CommonUtil.getFileMD5(new File(task.getDownloadPath())));
  }


  void start(String url) {
    mUrl = url;
    mTaskId = Aria.download(this)
        .load(url)
        .addHeader("Accept-Encoding", "gzip, deflate")
        .setRequestMode(RequestEnum.GET)
        .setFilePath(Environment.getExternalStorageDirectory().getPath() + "/ggsg1.apk")
        .resetState()
        .create();
  }

  void stop() {
    Aria.download(this).load(mTaskId).stop();
  }

  void cancel() {
    Aria.download(this).load(mTaskId).cancel();
  }

  void unRegister() {
    Aria.download(this).unRegister();
  }
}
Copyright © 2018 laoyuyu. | 蜀ICP备17031160号.            更新时间: 2019-10-24

results matching ""

    No results matching ""