一个Demo带你了解Android接口回调机制

作者 : 开心源码 本文共1610个字,预计阅读时间需要5分钟 发布时间: 2022-05-12 共225人阅读

前言

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

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

举个例子:

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<String,Void,String>{    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。就可前往免费领取。免费备注一下简书

说明
1. 本站所有资源来源于用户上传和网络,如有侵权请邮件联系站长!
2. 分享目的仅供大家学习和交流,您必须在下载后24小时内删除!
3. 不得使用于非法商业用途,不得违反国家法律。否则后果自负!
4. 本站提供的源码、模板、插件等等其他资源,都不包含技术服务请大家谅解!
5. 如有链接无法下载、失效或广告,请联系管理员处理!
6. 本站资源售价只是摆设,本站源码仅提供给会员学习使用!
7. 如遇到加密压缩包,请使用360解压,如遇到无法解压的请联系管理员
开心源码网 » 一个Demo带你了解Android接口回调机制

发表回复