app/src/main/java/me/zhanghai/android/douya/app/RetainedFragment.java

(完整代码) 1KB

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

package me.zhanghai.android.douya.app;

import android.os.Bundle;
import android.support.v4.app.Fragment;

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

/**
 * In order to retain instance, this fragment should always be attached to the host activity
 * directly instead of being attached to any child fragment manager.
 */
public class RetainedFragment extends Fragment {

    private List<Runnable> mPendingRunnables = new ArrayList<>();

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);

        setRetainInstance(true);
        setUserVisibleHint(false);
    }

    @Override
    public void onResume() {
        super.onResume();

        Iterator<Runnable> iterator = mPendingRunnables.iterator();
        while (iterator.hasNext()) {
            Runnable runnable = iterator.next();
            iterator.remove();
            runnable.run();
        }
    }

    protected void postOnResumed(Runnable runnable) {
        if (isResumed()) {
            runnable.run();
        } else {
            mPendingRunnables.add(runnable);
        }
    }
}

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

AI 解读

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

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