这是一个简单的场景:
ProgressBar
设为可见。ProgressBar
。我很好奇处理这种情况的最佳方法是什么。
答案 0 :(得分:1)
一个可能的选项也可能是使用事件总线(例如https://github.com/greenrobot/EventBus)并在网络操作完成时保持粘滞事件并在onResume中检查您的活动。
答案 1 :(得分:0)
我的回答是Service
或IntentService
。当您的应用程序处于后台时,我假设您隐藏了进度条。当应用程序位于前台时您可以绑定到Service的实例,可能有一个返回当前进度的方法。如果进度更大或等于最大值,则再次显示进度,否则您将采取其他措施
答案 2 :(得分:0)
这类场景的一般模式(也可包括数据处理,视图更新等)是:
/*
`controller` is the object with reference to the task
currently being executed.
It can be anything:
a network operation,
a file copy,
an image processing,
an asset loading, etc, etc...
*/
public void onStart() {
super.onStart();
myView.setSomeProperty(controller.getCurrentValue());
controller.subscribe(this);
}
public void onStop() {
controller.unsubscribe(this);
super.onStop();
}
@Override
public void onControllerSubscriptionUpdate(int newValue){
myView.setSomeProperty(newValue);
}
这样,每当Activity或Fragment到达前台时,您的视图都会使用最新参数进行更新。