java 监听器实现原理

监听器实现者:

public class MyActivity extends Activity implements InternetManager.Listener {

private TextView mText;
private InternetManager mInetMgr;

/* called just like onCreate at some point in time */
public void onStateChange(boolean state) {
if (state) {
mText.setText("on");
} else {
mText.setText("off");
}
}

public void onCreate() {
mInetMgr = new InternetManager();
mInetMgr.registerListener(this);
mInetMgr.doYourWork();
}
}

自定义类,监听器作为内部属性(包含方法),

类中存在调用监听器内部方法的地方,

set不同的监听器实现者,处理的方式便不一样,

监听器相当于一个钩子,做回调使用。

public class InternetManager {
// all the listener stuff below
public interface Listener {
public void onStateChange(boolean state);
}

private Listener mListener = null;
public void registerListener (Listener listener) {
mListener = listener;
}

// -----------------------------
// the part that this class does

private boolean isInternetOn = false;
public void doYourWork() {
// do things here
// at some point
isInternetOn = true;
// now notify if someone is interested.
if (mListener != null)
mListener.onStateChange(isInternetOn);
}
}

        

实例二:

 @Override    public void onStart(Intent intent, int startid) {        super.onStart(intent, startid);
 locationService = ((LocationApplication) getApplication()).locationService;        //获取locationservice实例,建议应用中只初始化1个location实例,然后使用,可以参考其他示例的activity,都是通过此种方式获取locationservice实例的        locationService.registerListener(mListener);        //注册监听
  if (type == 0) {            locationService.setLocationOption(locationService.getDefaultLocationClientOption());        } else if (type == 1) {            locationService.setLocationOption(locationService.getOption());        }
   }
   @Override    public void onDestroy() {        Log.i("warn", "ondestroy");        locationService.stop(); //停止定位服务        locationService.unregisterListener(mListener); //注销掉监听    }
时间: 2024-11-09 08:11:05

java 监听器实现原理的相关文章

java监听器的原理与实现

监听器模型涉及以下三个对象,模型图如下: (1)事件:用户对组件的一个操作,称之为一个事件 (2)事件源:发生事件的组件就是事件源 (3)事件监听器(处理器):监听并负责处理事件的方法 执行顺序如下: 1.给事件源注册监听器 2.组件接受外部作用,也就是事件被触发 3.组件产生一个相应的事件对象,并把此对象传递给与之关联的事件处理器 4.事件处理器启动,并执行相关的代码来处理该事件. 监听器模式:事件源注册监听器之后,当事件源触发事件,监听器就可以回调事件对象的方法:更形象地说,监听者模式是基于

java监听器示例

监听器的原理是观察者模式.就像明星(事件源)聚拢了一群粉丝(观察者).当明星有啥举动的时候会通过粉丝们报道出去.订阅信息.计算器按钮都是该原理的应用. 下面写了一个监听器的小例子: package listener; import java.util.EventObject; /** * 定义事件对象,用于标记当前进行的动作.必须继承EventObject. * @author zyj * */ public class StateEvent extends EventObject { priv

Java虚拟机工作原理详解

原文地址:http://blog.csdn.net/bingduanlbd/article/details/8363734 一.类加载器 首先来看一下java程序的执行过程. 从这个框图很容易大体上了解java程序工作原理.首先,你写好java代码,保存到硬盘当中.然后你在命令行中输入 [java] view plaincopy javac YourClassName.java 此时,你的java代码就被编译成字节码(.class).如果你是在Eclipse IDE或者其他开发工具中,你保存代码

Java的跨平台原理

JAVA的跨平台原理 JAVA的跨平台原理 Java是一种简单易用.完全面向对象.有平台无关性.安全可靠的.主要面向Internet的开发工具.Java自从1995年正式面世以来,它的快速发展已经使整个Web世界发生了翻天覆地的变化.随着Java Servlet的推出,Java在电子商务方面开始崭露头角,最新的Java Server Page(JSP)技术的推出,更是让Java成为基于Web应用程序的首选开发工具. Java是第一套允许使用者将应用程序通过Internet从远端服务器传输到本地机

java监听器

一.先看看jdk提供的event包:public interface EventListener:所有事件侦听器接口必须扩展的标记接口. package java.util; /** * A tagging interface that all event listener interfaces must extend. * @since JDK1.1 */ public interface EventListener { } public class EventObject extends O

Java虚拟机工作原理详解 (一)

一.类加载器 首先来看一下java程序的执行过程. 从这个框图很容易大体上了解java程序工作原理.首先,你写好java代码,保存到硬盘当中.然后你在命令行中输入 [java] view plain copy javac YourClassName.java 此时,你的java代码就被编译成字节码(.class).如果你是在Eclipse IDE或者其他开发工具中,你保存代码的时候,开发工具已经帮你完成了上述的编译工作,因此你可以在对应的目录下看到class文件.此时的class文 件依然是保存

Java虚拟机工作原理具体解释

一.类载入器 首先来看一下java程序的运行过程. 从这个框图非常easy大体上了解java程序工作原理.首先,你写好java代码,保存到硬盘其中.然后你在命令行中输入 javac YourClassName.java 此时,你的java代码就被编译成字节码(.class).假设你是在Eclipse IDE或者其它开发工具中,你保存代码的时候,开发工具已经帮你完毕了上述的编译工作,因此你能够在相应的文件夹下看到class文件.此时的class文件依旧是保存在硬盘中,因此,当你在命令行中执行 ja

全面解读Java NIO工作原理(2)

全面解读Java NIO工作原理(2) 2011-12-14 10:31 Rollen Holt Rollen Holt的博客 我要评论(0) 字号:T | T JDK 1.4 中引入的新输入输出 (NIO) 库在标准 Java 代码中提供了高速的.面向块的 I/O.本实用教程从高级概念到底层的编程细节,非常详细地介绍了 NIO 库.您将学到诸如缓冲区和通道这样的关键 I/O 元素的知识,并考察更新后的库中的标准 I/O 是如何工作的.您还将了解只能通过 NIO 来完成的工作,如异步 I/O 和

全面解读Java NIO工作原理(4)

全面解读Java NIO工作原理(4) 2011-12-14 10:31 Rollen Holt Rollen Holt的博客 我要评论(0) 字号:T | T JDK 1.4 中引入的新输入输出 (NIO) 库在标准 Java 代码中提供了高速的.面向块的 I/O.本实用教程从高级概念到底层的编程细节,非常详细地介绍了 NIO 库.您将学到诸如缓冲区和通道这样的关键 I/O 元素的知识,并考察更新后的库中的标准 I/O 是如何工作的.您还将了解只能通过 NIO 来完成的工作,如异步 I/O 和