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

本文共 1803 字,大约阅读时间需要 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);    }}

 

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

你可能感兴趣的文章
阿里大鱼数据库存储方案
查看>>
if判断的几种用法
查看>>
mysql安装与初始配置
查看>>
su命令
查看>>
linux 安装nginx
查看>>
建议把.CSV的默认打开方式改成任意一个文本 编辑器,系统自带的记事本就是个不错的选择...
查看>>
js 邮箱、11位手机正则
查看>>
使用Vim插件管理器Vundle
查看>>
Docker基于已有的镜像制新的镜像
查看>>
ServerCore命令
查看>>
nginx安装步骤总结-故障排查-浏览原理
查看>>
菜鸟学Linux 第071篇笔记 Mysql理论
查看>>
LINUX REDHAT第十四单元文档
查看>>
Java线程间通信之wait/notify
查看>>
jstat监控JVM内存使用情况、GC回收情况
查看>>
PHP ElasticSearch的使用
查看>>
python将日志导入数据库代码案例 3
查看>>
IOS之分析网易新闻存储数据(CoreData的使用,增删改查)
查看>>
php获取一维,二维数组长度的方法(有实例)
查看>>
iOS:KVO的概述与使用
查看>>