博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
一个Demo带你理解Android接口回调机制
阅读量:6381 次
发布时间:2019-06-23

本文共 1910 字,大约阅读时间需要 6 分钟。

前言

开发中,接口回调是我们经常用到的。

接口回调的意思即,注册之后并不立马执行,而在某个时机触发执行。

举个例子:

A有一个问题不会,他去问B,B暂时解决不出来,B说,等我(B)解决了再告诉你(A)此时A可以继续先做别的事情。

那么就只有当B解决完问题后告诉A问题解决了,A才可以能解决这个问题。

代码中比如最常用的:

一个Activity中给按钮一个接口回调方法,只有用户点击了这个按钮,告诉按钮被点击了,才会执行按钮接口回调的方法

Button btn = new Button(this);        btn.setOnClickListener(new View.OnClickListener() {            @Override            public void onClick(View view) {                            }        });

那么下面通过一个Demo理解接口回调:

主线程开启一个异步任务,当异步任务接收到数据,则把数据用TextView显示出来

1、首先 我们需要定义一个接口,定义一个方法,参数为一个字符串:

package com.xqx.InterfaceDemo;  public interface ChangeTitle {     void onChangeTitle(String title); }

2、写一个异步任务,把接口作为构造方法参数,在doInBackground()方法中判断如果有数据,则接口回调

package com.xqx.InterfaceDemo;import android.content.Context;import android.os.AsyncTask;public class MyTask extends AsyncTask
{ private ChangeTitle changeTitle; public MyTask(ChangeTitle changeTitle) { this.changeTitle = changeTitle; } @Override protected String doInBackground(String... strings) { if (strings[0]!=null){ changeTitle.onChangeTitle(strings[0]); } return null; }}

3、主Activity,给异步任务参数传this,即 接口回调方法在此类中执行,那么就需要实现ChangeTitle接口,重写接口中 onChangeTitle 方法

package com.xqx.InterfaceDemo;import android.app.Activity;import android.os.Bundle;import android.view.View;import android.widget.TextView;public class MainActivity extends Activity implements ChangeTitle {    private TextView textView;    @Override    public void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.main);        textView = (TextView) findViewById(R.id.textView);        new MyTask(this).execute("我是标题");    }  // 重写接口方法,执行相应操作    @Override    public void onChangeTitle(String title) {        textView.setText(title);    }}

附录

Android高级技术大纲,以及系统进阶视频;

Android高级技术大纲

Android进阶系统资料视频

获取方式;

加Android进阶群;701740775。即可前往免费领取。免费备注一下csdn

转载地址:http://qfhqa.baihongyu.com/

你可能感兴趣的文章
微服务分布式企业框架 Springmvc+mybatis+shiro+Dubbo+ZooKeeper+Redis+KafKa
查看>>
被《时代周刊》选为年度最佳发明,PS VR靠的竟然是价格
查看>>
通用唯一标识码UUID的介绍及使用。
查看>>
spring笔记--依赖注入之针对不同类型变量的几种注入方式
查看>>
Ajax的简单学习
查看>>
为npm配置taobao源
查看>>
管理邮件用户
查看>>
导出DC数据以便以介质方式安装另一台域控制器
查看>>
Hibernate学习(八):检索方式
查看>>
基于WorsPress+Xampp搭建博客
查看>>
javascript的一些基本概念
查看>>
关于Tomcat上请求的编解码问题
查看>>
WPF“动画序列”框架的初步研究与实现(附源码)
查看>>
Windows Server 2008 多元密码策略配置
查看>>
.NET中的泛型和Java泛型中的类型擦除
查看>>
白利用的集大成者:新型远控木马上演移形换影大法
查看>>
2017必备的八款最佳反勒索软件工具
查看>>
从Effective Java总结一些有助安卓开发的建议
查看>>
以一当十的程序员不是传说
查看>>
云纵发布“纵横客“ 新一代互联网CRM开启餐饮行业营销新模式
查看>>