做android的兄弟们都知道注册监听模式,应该说做c/s结构的应用都会遇到。比如我们需要监听来电状态,在来电状态改变时做出相应的变化,这多么像是一个回调啊。当然我们大多数就是用回调,也有用广播。
一直在使用,仔细想想,其实就是简单的技巧。我模拟了一下用户点击button的需求,这种需求对大多数回调都有效,网上回调的例子太多,有些很好,我觉得接下来这个例子可能会更实际,没有那么多无用的东西。
场景,在activity里生成一个button。并且点击这个button.点击button时作出操作。
为了更逼真的模拟,我们先声明一个抽象类Activity。
/**
* 模拟android的Context类
* */
public abstract class Activity {
public abstract void OnCreate();
}
再来模拟activity,我用了两种不同的写法来注册接口,大家各有所爱。
/**
* 第一种实现,估计是大家常用的一种实现
* */
public class ActivityClass extends Activity implements OnClickListener{
@Override
public void onClick(String name) {
System.out.println("第一种实现:"+name);
}
@Override
public void OnCreate() {
Button b = new Button();
b.setName("button");
b.setOnClickListener(this);
b.click();
}
}
第二种就是最开始学java时常些的方式:
/**
* 第二种方式实现,匿名内部类
* */
public class ActivitySecondClass extends Activity{
@Override
public void OnCreate() {
Button b = new Button();
b.setName("button");
b.setOnClickListener(new OnClickListener() {
public void onClick(String name) {
System.out.println("第二种实现:"+name);
}
});
b.click();
}
}
再来模拟我们的button.我为了演示,给button加了个name属性。
/**
* 模拟的button类
* */
public class Button {
private OnClickListener onclicklistener;
private String name;
public interface OnClickListener{
public void onClick(String name);
}
public void setOnClickListener(OnClickListener onclicklistener){
this.onclicklistener = onclicklistener;
}
public void click(){
onclicklistener.onClick(name);//此处回调接口的实现
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
}
接下来我们写个测试类来测试吧:
public class Test {
public static void main(String[] args) {
//ActivityClass activity = new ActivityClass();//第一种写法
ActivitySecondClass activity = new ActivitySecondClass();//第二种写法
activity.OnCreate();
}
}
代码比较简单,我就不做解释了,我不会把本来很简单的东西给大家搞得很复杂,那样不是分享的目的,希望大家能有所收获,不足之处,还望指正。谢谢。
分享到:
相关推荐
本文将深入探讨在Android中如何实现WebView回调JavaScript的方法。 首先,我们要明白WebView的基本用法。在布局文件中,我们可以添加一个WebView控件,并设置其加载特定的URL: ```xml android:id="@+id/webView...
2. **异步任务回调**:在Android中,我们经常使用AsyncTask或Handler进行异步操作。这些类提供了回调方法,如`onPreExecute()`(任务开始前),`doInBackground()`(后台执行任务),`onProgressUpdate()`(更新进度...
Android 中的回调机制 Android 中的回调机制是一种方法调用机制,类似于 C++ ...回调机制是一种常用的编程机制,广泛应用于 Android 开发中。了解回调机制的原理和应用场景,对于 Android 开发人员来说是非常重要的。
在这个"android开发回调使用.zip"文件中,我们可以预期包含的是关于如何在Android应用程序中有效地使用回调的教程或代码示例。 首先,我们要理解什么是回调。在编程中,回调是一种设计模式,它允许一个函数或方法在...
然后,在需要使用回调的地方,你可以在方法中接收这个接口作为参数,并在适当的时候调用其方法: ```java public void performAction(CustomCallback callback) { // 执行一些操作 String result = "操作结果"; ...
在实际开发中,这涉及到对Android广播机制的理解、广播接收器的注册与管理、onReceive()回调的使用以及安全地更新UI的策略。掌握这些知识点有助于构建一个能够及时响应系统事件并提供反馈的应用程序。
在Android开发中,回调模式和观察者模式是两种常见的事件处理机制,它们在软件设计模式中扮演着重要的角色,主要用于实现组件之间的通信。本文将详细探讨这两种模式,并结合Android环境进行解析。 首先,我们来理解...
本话题将深入探讨如何在Android中使用JNI进行多线程编程,并实现native方法对Java函数的回调。 1. **JNI基础知识**: - JNI是Java平台的一部分,为Java应用程序提供了与本地代码交互的能力。开发者可以通过JNI在...
在Android开发中,回调函数(Callback Function)是一种重要的设计模式,它允许代码在特定事件发生时执行自定义操作。回调函数通常与接口结合使用,使得一个类能够接收并处理另一个类的通知。在这个“Android回调...
在Android开发中,Activity和Fragment之间的通信经常使用回调。例如,当我们从一个Activity启动另一个Activity并希望在后者返回结果时进行处理,可以使用`startActivityForResult()`方法,并在原始Activity中重写`...
在Android开发中,接口回调是一种常见的通信机制,用于在不同组件之间传递信息,尤其是在异步操作完成后更新UI或执行其他后续操作时。本篇将详细阐述Android接口回调的基本概念、实现方式以及其在实际开发中的应用。...
标题"android 传值回调"主要涉及的是在Android应用程序的不同Activity之间传递数据以及使用回调方法来处理这些数据的方式。本篇文章将详细探讨Android页面传值的各种策略和技术。 首先,最基本的页面传值方式是使用...
在Android开发中,回调机制是一种常见的编程模式,用于处理异步操作或事件响应。这个“android回调demo”是为了帮助开发者直观地理解回调是如何工作的。在这个简单的示例中,我们将探讨回调的基本概念、如何在...
在这个实例中,“Android使用回调接口下载图片”是一个典型的应用场景,它涉及到网络编程、多线程以及UI更新等多个核心知识点。下面将详细阐述这些概念。 1. **回调接口**:回调接口是Java设计模式中的一个概念,...
这样,无论请求成功还是失败,都可以在对应的回调方法中处理。 ```java WebServiceManager webServiceManager = new WebServiceManager(); Map, String> params = new HashMap(); // 设置参数... webServiceManager...
在Android的网络请求库,如Volley、Retrofit或OkHttp中,也广泛使用了回调接口。这些库允许我们在网络请求成功或失败时执行相应的回调方法,比如Retrofit的`Call<T>.enqueue()`方法: ```java Call<ResponseBody> ...
本文将深入探讨如何在Android的JNI线程中实现回调机制。 首先,我们需要了解Android线程的基本概念。主线程,也称为UI线程,负责处理用户界面的更新和事件处理。为了避免阻塞主线程导致应用无响应,我们可以使用...
在Android开发中,接口回调是实现组件间通信的常见方式,尤其在异步操作中,如网络请求、数据加载等。然而,传统的接口回调方式可能会导致代码结构复杂,难以维护,因此开发者通常会寻求优化策略。本文将深入探讨第...
本篇文章将详细介绍如何在Android NDK开发中实现C回调Java中的方法。 首先,了解NDK和JNI的基础概念是必要的。NDK是一套工具,提供了在Android平台上编译和运行C/C++代码的环境。而JNI是Java平台的标准接口,它允许...