Android编程实现下载时主界面与详细界面一致更新的方法

作者:LovooGod 时间:2023-01-02 10:07:35 

本文实例讲述了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程序设计有所帮助。

来源:http://blog.csdn.net/lovoo/article/details/51864605

标签:Android,下载,更新
0
投稿

猜你喜欢

  • java实现gif动画效果(java显示动态图片)

    2023-10-19 07:56:38
  • Android APP存活检测方式

    2023-10-14 10:02:41
  • IntelliJ IDEA中properties文件显示乱码问题的解决办法

    2021-09-08 04:59:03
  • mybatis if传入字符串数字踩坑记录及解决

    2022-07-18 00:41:18
  • 详解SpringBoot修改启动端口server.port的四种方式

    2022-03-10 20:28:48
  • java8 实现提取集合对象的每个属性

    2023-10-17 19:37:27
  • Android自定义可循环的滚动选择器CycleWheelView

    2023-04-06 00:43:16
  • Java方法参数传递机制原理解析

    2022-04-16 19:10:46
  • Android自定义SurfaceView实现画板功能

    2022-01-17 06:57:19
  • Android 实现永久保存数据的方法详解

    2023-06-23 22:13:23
  • C# salt+hash 加密

    2022-04-22 03:54:43
  • Java枚举类用法实例

    2023-09-25 01:47:34
  • SpringBoot一个非常蛋疼的无法启动的问题解决

    2023-12-12 15:24:36
  • Android WebView实现全屏播放视频

    2023-04-12 17:12:39
  • Android实现网易Tab分类排序控件实现

    2023-10-31 22:20:56
  • Spring中自动注入的两种方式总结

    2022-10-24 08:54:14
  • c#添加图片、文本水印到PDF文件

    2021-08-30 13:36:57
  • Android测量每秒帧数Frames Per Second (FPS)的方法

    2022-01-21 05:43:15
  • 实例讲解JAVA设计模式之备忘录模式

    2023-08-29 16:31:19
  • Java编程实现A*算法完整代码

    2022-06-18 12:28:57
  • asp之家 软件编程 m.aspxhome.com