diff --git a/Aria/src/main/java/com/arialyy/aria/core/queue/DownloadTaskQueue.java b/Aria/src/main/java/com/arialyy/aria/core/queue/DownloadTaskQueue.java index e51daeb5..0a8aa594 100644 --- a/Aria/src/main/java/com/arialyy/aria/core/queue/DownloadTaskQueue.java +++ b/Aria/src/main/java/com/arialyy/aria/core/queue/DownloadTaskQueue.java @@ -85,7 +85,7 @@ public class DownloadTaskQueue } startTask(task); - for (DownloadTask temp : tempTasks){ + for (DownloadTask temp : tempTasks) { mExecutePool.putTask(temp); } } diff --git a/Aria/src/main/java/com/arialyy/aria/core/scheduler/AbsSchedulers.java b/Aria/src/main/java/com/arialyy/aria/core/scheduler/AbsSchedulers.java index 3942ca61..f8f26021 100644 --- a/Aria/src/main/java/com/arialyy/aria/core/scheduler/AbsSchedulers.java +++ b/Aria/src/main/java/com/arialyy/aria/core/scheduler/AbsSchedulers.java @@ -38,20 +38,19 @@ public abstract class AbsSchedulers<TASK_ENTITY extends AbsTaskEntity, ENTITY ex protected QUEUE mQueue; - private Map<String, IDownloadSchedulerListener<TASK>> mSchedulerListeners = - new ConcurrentHashMap<>(); + private Map<String, ISchedulerListener<TASK>> mSchedulerListeners = new ConcurrentHashMap<>(); @Override public void addSchedulerListener(String targetName, ISchedulerListener<TASK> schedulerListener) { - mSchedulerListeners.put(targetName, (IDownloadSchedulerListener<TASK>) schedulerListener); + mSchedulerListeners.put(targetName, schedulerListener); } @Override public void removeSchedulerListener(String targetName, ISchedulerListener<TASK> schedulerListener) { //该内存泄露解决方案:http://stackoverflow.com/questions/14585829/how-safe-is-to-delete-already-removed-concurrenthashmap-element - for (Iterator<Map.Entry<String, IDownloadSchedulerListener<TASK>>> iter = + for (Iterator<Map.Entry<String, ISchedulerListener<TASK>>> iter = mSchedulerListeners.entrySet().iterator(); iter.hasNext(); ) { - Map.Entry<String, IDownloadSchedulerListener<TASK>> entry = iter.next(); + Map.Entry<String, ISchedulerListener<TASK>> entry = iter.next(); if (entry.getKey().equals(targetName)) iter.remove(); } } @@ -99,7 +98,7 @@ public abstract class AbsSchedulers<TASK_ENTITY extends AbsTaskEntity, ENTITY ex } } - private void callback(int state, TASK task, IDownloadSchedulerListener<TASK> listener) { + private void callback(int state, TASK task, ISchedulerListener<TASK> listener) { if (listener != null) { if (task == null) { Log.e(TAG, "TASK 为null,回调失败"); @@ -134,7 +133,9 @@ public abstract class AbsSchedulers<TASK_ENTITY extends AbsTaskEntity, ENTITY ex listener.onTaskFail(task); break; case SUPPORT_BREAK_POINT: - listener.onNoSupportBreakPoint(task); + if (listener instanceof IDownloadSchedulerListener) { + ((IDownloadSchedulerListener<TASK>) listener).onNoSupportBreakPoint(task); + } break; } } diff --git a/Aria/src/main/java/com/arialyy/aria/orm/SqlHelper.java b/Aria/src/main/java/com/arialyy/aria/orm/SqlHelper.java index e13f5492..f3f82bde 100644 --- a/Aria/src/main/java/com/arialyy/aria/orm/SqlHelper.java +++ b/Aria/src/main/java/com/arialyy/aria/orm/SqlHelper.java @@ -497,7 +497,7 @@ final class SqlHelper extends SQLiteOpenHelper { } private static void close(SQLiteDatabase db) { - if (db != null && db.isOpen()) db.close(); + //if (db != null && db.isOpen()) db.close(); } private static SQLiteDatabase checkDb(SQLiteDatabase db) {