From 853571bc00229e131f6b9655d6087d85d2df1451 Mon Sep 17 00:00:00 2001 From: AriaLyy <511455842@qq.com> Date: Thu, 1 Dec 2016 20:25:01 +0800 Subject: [PATCH] not do --- .../core/{AMEntity.java => AMTarget.java} | 5 +- .../com/arialyy/downloadutil/core/Aria.java | 11 +-- .../downloadutil/core/AriaManager.java | 77 ++++++++++++++++--- 3 files changed, 73 insertions(+), 20 deletions(-) rename downloadutil/src/main/java/com/arialyy/downloadutil/core/{AMEntity.java => AMTarget.java} (66%) diff --git a/downloadutil/src/main/java/com/arialyy/downloadutil/core/AMEntity.java b/downloadutil/src/main/java/com/arialyy/downloadutil/core/AMTarget.java similarity index 66% rename from downloadutil/src/main/java/com/arialyy/downloadutil/core/AMEntity.java rename to downloadutil/src/main/java/com/arialyy/downloadutil/core/AMTarget.java index 0a6bdf40..5ef3b256 100644 --- a/downloadutil/src/main/java/com/arialyy/downloadutil/core/AMEntity.java +++ b/downloadutil/src/main/java/com/arialyy/downloadutil/core/AMTarget.java @@ -3,7 +3,8 @@ package com.arialyy.downloadutil.core; import android.content.Context; import com.arialyy.downloadutil.core.scheduler.OnSchedulerListener; -public class AMEntity { - Context context; +public class AMTarget { + Context context; OnSchedulerListener listener; + DownloadEntity entity; } \ No newline at end of file diff --git a/downloadutil/src/main/java/com/arialyy/downloadutil/core/Aria.java b/downloadutil/src/main/java/com/arialyy/downloadutil/core/Aria.java index 1bcf97a3..cdbad75b 100644 --- a/downloadutil/src/main/java/com/arialyy/downloadutil/core/Aria.java +++ b/downloadutil/src/main/java/com/arialyy/downloadutil/core/Aria.java @@ -42,14 +42,9 @@ public class Aria { mDownloadManager = DownloadManager.init(context); } - public static Aria get(Context context) { - if (INSTANCE == null) { - synchronized (LOCK) { - INSTANCE = new Aria(); - } - } - return INSTANCE; - } + //public static AriaManager whit(Context context) { + // return AriaManager.getInstance().get(context); + //} /** * 开始下载 diff --git a/downloadutil/src/main/java/com/arialyy/downloadutil/core/AriaManager.java b/downloadutil/src/main/java/com/arialyy/downloadutil/core/AriaManager.java index 7a9814b8..66d18291 100644 --- a/downloadutil/src/main/java/com/arialyy/downloadutil/core/AriaManager.java +++ b/downloadutil/src/main/java/com/arialyy/downloadutil/core/AriaManager.java @@ -1,36 +1,93 @@ package com.arialyy.downloadutil.core; +import android.annotation.TargetApi; +import android.app.Activity; +import android.app.Application; import android.content.Context; -import com.arialyy.downloadutil.core.scheduler.OnSchedulerListener; +import android.os.Build; +import android.os.Bundle; import java.util.HashMap; import java.util.Map; /** * Created by lyy on 2016/12/1. */ -public class AriaManager { - private Map mAria = new HashMap<>(); +@TargetApi(Build.VERSION_CODES.ICE_CREAM_SANDWICH) public class AriaManager { + private static final Object LOCK = new Object(); + private static volatile AriaManager INSTANCE = null; + private Map mTargets = new HashMap<>(); + private DownloadManager mManager; + private LifeCallback mLifeCallback; - private static final Object LOCK = new Object(); - private static volatile AriaManager INSTANCE = null; - - private AriaManager(){ + private AriaManager(Context context) { + regAppLifeCallback(context); + mManager = DownloadManager.init(context); } - public static AriaManager getInstance() { + public static AriaManager getInstance(Context context) { if (INSTANCE == null) { synchronized (LOCK) { - INSTANCE = new AriaManager(); + INSTANCE = new AriaManager(context); } } return INSTANCE; } - public synchronized void get(Context context){ + private void putTarget(Context context) { + String clsName = context.getClass().getName(); + AMTarget target = mTargets.get(clsName); + if (target == null) { + target = new AMTarget(); + mTargets.put(clsName, target); + } + } + private AMTarget getTarget(Context context) { + return mTargets.get(context.getClass().getName()); } + /** + * 注册APP生命周期回调 + */ + private void regAppLifeCallback(Context context) { + Context app = context.getApplicationContext(); + if (app instanceof Application) { + mLifeCallback = new LifeCallback(); + ((Application) app).registerActivityLifecycleCallbacks(mLifeCallback); + } + } + + /** + * Activity生命周期 + */ + private class LifeCallback implements Application.ActivityLifecycleCallbacks { + @Override public void onActivityCreated(Activity activity, Bundle savedInstanceState) { + } + + @Override public void onActivityStarted(Activity activity) { + + } + + @Override public void onActivityResumed(Activity activity) { + + } + @Override public void onActivityPaused(Activity activity) { + + } + + @Override public void onActivityStopped(Activity activity) { + + } + + @Override public void onActivitySaveInstanceState(Activity activity, Bundle outState) { + + } + + @Override public void onActivityDestroyed(Activity activity) { + + } + } }