温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

Android编程如何实现下载时主界面与详细界面一致更新

发布时间:2021-08-04 14:07:02 来源:亿速云 阅读:115 作者:小新 栏目:移动开发

这篇文章给大家分享的是有关Android编程如何实现下载时主界面与详细界面一致更新的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。

具体如下:

1、创建监听管理类

public class ObserverManager {
  private List<Observer> observers = new ArrayList<ObserverManager.Observer>();
  public interface Observer {
    public void update();
    public void updateState();
  }
  public void addObserver(Observer observer) {
    if (observer == null) {
      throw new RuntimeException();
    }
    synchronized (this) {
      if (!observers.contains(observer)) {
        observers.add(observer);
      }
    }
  }
  public void notifyObservers() {
    for (Observer observer : observers) {
      observer.update();
    }
  }
  public void notifyState() {
    for (Observer observer : observers) {
      observer.updateState();
    }
  }
}

2、创建详细界面

public class DetailView extends View implements Observer {
  public DetailView(Context context, AttributeSet attrs, int defStyleAttr) {
    super(context, attrs, defStyleAttr);
  }
  public DetailView(Context context, AttributeSet attrs) {
    super(context, attrs);
  }
  public DetailView(Context context) {
    super(context);
  }
  @Override
  public void update() {
    System.out.println("update");
  }
  @Override
  public void updateState() {
    System.out.println("updateState");
  }
}

3、创建主界面

1)在初始化时添加监听

mObserverManager.addObserver(new DetailView(this));

2)在主界面点击下载时通知详细界面更新

public class MainActivity extends Activity {
  private ObserverManager mObserverManager;
  @Override
  protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    mObserverManager = new ObserverManager();
    mObserverManager.addObserver(new DetailView(this));
  }
  public void click(View v) {
    //TODO 比如开始下载
    mObserverManager.notifyUpdate();//
  }
}

感谢各位的阅读!关于“Android编程如何实现下载时主界面与详细界面一致更新”这篇文章就分享到这里了,希望以上内容可以对大家有一定的帮助,让大家可以学到更多知识,如果觉得文章不错,可以把它分享出去让更多的人看到吧!

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI