gpt4 book ai didi

java - 在 fragment 之间共享进度

转载 作者:行者123 更新时间:2023-12-01 13:56:12 25 4
gpt4 key购买 nike

我有几个 fragment 。其中之一可以启动IntentService进行繁重的操作。问题是,从另一个 fragment 获取后台任务的进度/状态的最佳方法是什么?

最佳答案

如果你想要类似回调机制,你可以为其实现类似观察者的架构/模式。

了解Observer pattern on wikipedia (带有 Java 示例)

这是我给您的示例:

public class ObservableProgress {

public interface Observer {
void onProgressChanged(Object newProgress);
}

// I do not know the type of your progress
private static volatile Object progress;

private static final List<Observer> observers = new LinkedList<Observer>();

// closing constructor for clear class's api
private ObservableProgress() {}

// on each progress change, all observers would be notified about progress change
public static void setProgress(Object newProgress) {
progress = newProgress;
notifyOnProgressChanged(newProgress);
}

public static Object getProgress() {
return progress;
}

// use it to add progress listener
public static void addObserver(Observer observer) {
observers.add(observer);
}

// use it to remove progress listener
public static void removeObserver(Observer observer) {
observers.remove(observer);
}

private static void notifyOnProgressChanged(Object newProgress) {
for (Observer observer : observers) {
if (observer != null) {
observer.onProgressChanged(newProgress);
}
}
}

}

关于java - 在 fragment 之间共享进度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19612902/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com