观察者模式在 android开发中应用还是非常广泛的,例如android按钮事件的监听、广播等等,在任何类似于新闻-订阅的模式下面都可以使用。从某种意义上面来说android有点像JAVA EE的WEB页面,在都需要提供View层用于进行操作,在多个页面之间传递数据发送通知都是一件很麻烦的事情。在android中从A页面跳转到B页面,然后B页面进行某些操作后需要通知A页面去刷新数据,我们可以通过s
前言观察者模式是我们开发工作中经常使用的开发模式。Android 源码中也有很多地方用到此模式。比如:ListView、ContentProvider 和 Broadcast 等等。本文将会介绍观察者模式、实现一个观察者模式并结合 Android 源码进行分析。定义定义对象间的一种一个对多的依赖关系,当一个对象的状态发送改变时,所以依赖于它的对象都得到通知并被自动更新。介绍观察者模式又被称作发布/
拦截短信,比如当发短信的时候,就把短信读取出来,当系统的短信发生变化的时候,大叫一声,把数据发送到公共的消息邮箱里面,我们的应用通过内容观察者观察公共的消息邮箱   获取ContentResolver对象,调用函数getContentResolver(), 调用ContentResolver对象的r
原创 2021-06-17 19:19:13
172阅读
在编程语言里面有很多的模式一个有 24种如单例设计模式 本篇文章要讲的是Android内容观察者模式内容观察者一般使用与观察某个数据有没有发
原创 2023-03-10 01:25:56
102阅读
前言:工作中,需要开启一个线程大量的查询某个数据库值发送了变化,导致的开销很大,利用了ContentObserver完美的解决了该问题ContentObserver——内容观察者,目的是观察(捕捉)特定Uri引起的数据库的变化,继而做一些相应的处理,它类似于数据库技术中的触发器(Trigger),当ContentObserver所观察的Uri发生变化时,便会触发它。触发器分为表触发器、行触发器,相
原创 2016-02-24 18:18:52
527阅读
* 只要在这个Uri上面注册了内容观察者,当数据库的表发生变化时,就会发出通知 getContentResolver().registerContentObserver(Uri.parse("content://sms/"), true, new ContentObserver(new Handler()) { //Android4.1.2以上使用 ...
原创 2021-08-13 10:26:07
85阅读
了解过单例模式,建造模式,现在来看一看观察者模式。自己刚接触这些模式的时候简直一头雾水,我能一个类一个类的写为什么要用接口?我能实现为什么要去优化?废话不多说,说说观察者模式吧。观察者模式又被称作 发布/订阅模式,观察者模式定义了一种一对多的依赖关系,让多个观察者对象同时监听某一个主题对象。这个主题对象在状态发生变化时,会通知所有观察者对象,使它们能够自动更新自己。A 对象(观察者)对 B 对象
ContentObserver——内容观察者,可以观察特定uri的数据库的变化,已达到监听的目的,进而对数据库的变化作出相应的反应。下面是一个监听短信变化的应用。public class MainActivity extends Activity { @Override protected void onCreate(Bundle savedInstanceState) {
原创 2014-03-07 09:48:41
541阅读
1点赞
观察者模式是对象的行为模式,又叫发布-订阅(Publish/Subscribe)模式、模型-视图(Model/View)模式、源-监听器(Source/Listener)模式或从属(Dependents)模式。   观察者模式定义了一种一对多的依赖关系,让多个观察者对象同时监听某一个主题对象。这个主题对象在状态上发生变化时,会通知所有观察者对象,使它们能够自动更新自己。 观察者模式的结构  
public class MainActivity extends AppCompatActivity { private static final String TAG = "jojo"; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(save
原创 2022-09-27 10:40:11
126阅读
文章目录1. 前言2. 观察者模式2.1 源码2.2 结构3. Android中的观察者模式 1. 前言观察者模式是在代码框架中使用比较高的一个设计模式,常常又叫做订阅/发布模式。而通过这个设计模式通常我们就可以做到代码的解耦。在现实生活中,比如当我们订阅了Android官方资讯后,用户就可以收到来自这些网站的推荐消息。在这个场景中就是发布/订阅模式。而这种观察行为通常是一个被观察者,多个观察者
看效果图 项目结构图 这个Demo 主要是通过线程池管理ThreadPoolManager 控制 下载任务线程 DownLoadManager.DownLoadTask , 下载任务线程通过HttpUrlConnection 去网络加载数据 ,下载状态更基于下载观察者 DownLoadManager 去刷新 对应的 UI控件每一个下载任务是有唯一性的,可以通过 判断下载Url或者 下载id是否一样
观察者模式,是一种非常常见的设计模式,在很多系统中随处可见,尤其是涉及到数据状态发生变化需要通知的情况下。 本文以AbstractCursor为例子,展开分析。 观察者模式,Observer Pattern,是一个很实用的模式,本人曾经接触到的各种平台以及曾经参与项目中打印模板解释器中都用到了此模式。1.意图 定义对象间的一种一对多的依赖关系,当一个对象的状态发生改变时,所有依赖于它的对象都得到
1内容访问*内容访问:1.获取提供:getcontentResolverO;ContentResolver对象2.访问内容提供:增洲改查ContentResolverresolver=getcontentResolverO;uriuri=uri.parse("content://com.provider111/query");cursorcursor=resolver.
原创 2021-03-07 21:32:12
1889阅读
## Java内容观察者模式 在Java编程中,内容观察者模式(Observer Pattern)是一种非常常见的设计模式。它允许一个对象(称为主题)维护一系列依赖于它的对象(称为观察者),并在主题状态发生变化时自动通知观察者。这种模式被广泛应用于GUI编程、事件处理和数据驱动的应用程序中。 ### 模式概述 观察者模式是一种行为型设计模式,它由以下角色组成: 1. 主题(Subject)
原创 2023-08-04 03:40:30
8阅读
#内容观察者* 通过内容提供可以访问到数据库,当数据库数据改变时,内容提供会发出通知,在内容提供的uri上注册一个内容观察者,就可以收到数据改变的通知,类似于广播接受,但是他不是广播。 cr.registerContentObserver(Uri.parse("content:...
转载 2015-11-17 22:59:00
57阅读
1.简单的设计模式:单例模式:在系统中一个类只有一个实例。分为懒汉模式和饿汉模式。饿汉模式的代码如下: public class Singleten{ private static singleten Instance = new Singleten(); private Singleten(){} public static getInstance() { return Instanc
接触安卓有一段时间了,之前一直都不懂什么设计模式之类的, 最近在做一个项目,从项目中理解到了一种观察者模式,个人 觉得这种观察者模式很好理解,也很好运用。何为观察者模式?观察者模式由 观察者 和 被观察者 组成。简单的抽象成2种角色:观察角色、被观察角色。观察角色时刻关注着被观察角色的动态,被观察角色一有动向就会向 观察角色发出一个通知,告诉它“我变化了”,你该做出相应的动作了。观察者模式的
什么是观察者模式? 观察者模式是一种软件设计模式 ,可在对象之间建立一对多的依赖关系。 只要对象之一(“对象”或“可观察”)的状态发生变化,就会通知依赖于该对象的所有其他对象(“观察者”)。 让我们以订阅通过电子邮件从Envato Market接收报价的用户为例。 在这种情况下,用户是观察者。 Envato Market随时提供要约时,他们会通过电子邮件收到有关其的通知。 然后,每个用户都可以购
上一节我们讲到了单例模式,其实上一节的代码例子也用到了观察者模式。也就是用户信息发生变化的时候通知所有注册了用户信息监听接口的人。观察者模式就是这么一个角色,他管理着一类信息,并随时注意着这些信息的变化,一有变化就通知关注了这个观察者的人。 还是上次讲的那个单例模式那个例子 /** * 用户登录信息管理模块 * @author LZ
转载 10月前
101阅读
  • 1
  • 2
  • 3
  • 4
  • 5