app/src/main/java/me/zhanghai/android/douya/content/ResourceWriterManager.java

(开头部分) 2KB

这里只显示每个文件的开头 60 行。登录后可以解锁完整代码。

/*
 * Copyright (c) 2016 Zhang Hai <Dreaming.in.Code.ZH@Gmail.com>
 * All Rights Reserved.
 */

package me.zhanghai.android.douya.content;

import android.content.Context;

import java.util.ArrayList;
import java.util.Collections;
import java.util.Iterator;
import java.util.List;

import me.zhanghai.android.douya.util.CollectionUtils;

public class ResourceWriterManager<T extends ResourceWriter> {

    private ResourceWriterService mService;

    private List<T> mPendingWriters = new ArrayList<>();
    private List<T> mRunningWriters = new ArrayList<>();
    private List<T> mUnmodifiableWriters = Collections.unmodifiableList(
            CollectionUtils.union(mRunningWriters, mPendingWriters));

    public void onBind(ResourceWriterService service) {

        mService = service;

        movePendingWritersToRunning();
    }

    private void movePendingWritersToRunning() {
        Iterator<T> iterator = mPendingWriters.iterator();
        while (iterator.hasNext()) {
            T writer = iterator.next();
            iterator.remove();
            mRunningWriters.add(writer);
            writer.onStart();
        }
    }

    public void onUnbind() {

        removeRunningWriters();

        mService = null;
    }

    private void removeRunningWriters() {
        Iterator<T> iterator = mRunningWriters.iterator();
        while (iterator.hasNext()) {
            T writer = iterator.next();
            writer.onDestroy();
            iterator.remove();
        }
    }

    protected boolean isBound() {
        return mService != null;
后面还有 35 行代码,解锁后查看完整代码

24 小时内免费解锁 3 个项目,之后 1 积分/个。 规则说明

AI 解读

登录后可用,每次 10 积分,解读结果公开显示在下面。

还没有人解读过这个文件。