文件整理、修改
This commit is contained in:
@ -14,6 +14,7 @@ import com.gh.common.util.Utils;
|
||||
import java.io.File;
|
||||
import java.util.List;
|
||||
import java.util.Map.Entry;
|
||||
import java.util.concurrent.LinkedBlockingQueue;
|
||||
|
||||
public class DownloadManager {
|
||||
|
||||
@ -23,11 +24,13 @@ public class DownloadManager {
|
||||
private Handler handler;
|
||||
|
||||
private ArrayMap<String, Long> lastTimeMap;
|
||||
private ArrayMap<String, LinkedBlockingQueue<String>> platformMap;
|
||||
|
||||
private DownloadManager(Context context) {
|
||||
this.context = context;
|
||||
|
||||
lastTimeMap = new ArrayMap<String, Long>();
|
||||
lastTimeMap = new ArrayMap<>();
|
||||
platformMap = new ArrayMap<>();
|
||||
|
||||
handler = new Handler(context.getMainLooper()){
|
||||
@Override
|
||||
@ -42,6 +45,16 @@ public class DownloadManager {
|
||||
if (System.currentTimeMillis() - lastTimeMap.get(url) >= 1000) {
|
||||
pause(url);
|
||||
}
|
||||
} else if (msg.what == Constants.DOWNLOAD_ROLL) {
|
||||
String name = (String) msg.obj;
|
||||
LinkedBlockingQueue<String> queue = platformMap.get(name);
|
||||
if (queue.size() > 1) {
|
||||
queue.offer(queue.poll());
|
||||
Message message = Message.obtain();
|
||||
message.obj = name;
|
||||
message.what = Constants.DOWNLOAD_ROLL;
|
||||
sendMessageDelayed(message, 3000);
|
||||
}
|
||||
}
|
||||
}
|
||||
};
|
||||
@ -52,6 +65,22 @@ public class DownloadManager {
|
||||
lastTimeMap.put(url, time);
|
||||
}
|
||||
|
||||
public void putQueue(String name, LinkedBlockingQueue<String> queue) {
|
||||
platformMap.put(name, queue);
|
||||
}
|
||||
|
||||
public LinkedBlockingQueue<String> getQueue(String name) {
|
||||
return platformMap.get(name);
|
||||
}
|
||||
|
||||
public void removePlatform(String name, String platform) {
|
||||
LinkedBlockingQueue<String> queue = platformMap.get(name);
|
||||
if (queue != null) {
|
||||
queue.remove(platform);
|
||||
platformMap.put(name, queue);
|
||||
}
|
||||
}
|
||||
|
||||
public void sendMessageDelayed(Message msg, long delayMillis) {
|
||||
handler.sendMessageDelayed(msg, delayMillis);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user