android 回调函数二:应用实例
1、定义接口
package com.app.util;
public interface ZYJCallBack {
public void dataResult( String resultString ) ;
public void progress( Integer progress ) ;
public void start() ;
}
2、实体
package com.app.util;
import android.os.AsyncTask;
public class ZYJAsyncTask extends AsyncTask< String , Integer , String > {
ZYJCallBack zyjCallBack ;
//开始
@Override
protected void onPreExecute() {
super.onPreExecute();
zyjCallBack.start();
}
/**
* 特别注意:publishProgress( 10 );
* 这一句一定要写,否则 onProgressUpdate() ,这个方法不会被回调
*/
@Override
protected String doInBackground(String... params) {
publishProgress( 10 );
publishProgress( 20 );
publishProgress( 50 );
publishProgress( 100 );
return "哈哈哈,操作完成了" ;
}
//onProgressUpdate方法用于更新进度信息
@Override
protected void onProgressUpdate(Integer... progresses) {
zyjCallBack.progress( progresses[0] );
}
@Override
protected void onPostExecute(String result) {
super.onPostExecute(result);
zyjCallBack.dataResult( result );
}
public void setCallBackListener(ZYJCallBack zyjCallBack){
this.zyjCallBack = zyjCallBack ;
}
}
3、回调
package com.android10;
import com.app.util.ZYJAsyncTask;
import com.app.util.ZYJCallBack;
import android.app.Activity;
import android.os.Bundle;
public class MainActivity extends Activity {
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView( R.layout.activity_main );
ZYJAsyncTask zyjAsyncTask = new ZYJAsyncTask() ;
zyjAsyncTask.setCallBackListener( new ZYJCallBack() {
@Override
public void start() {
System.out.println("ssss开始了" ) ;
}
@Override
public void progress(Integer progress) {
System.out.println("ssss进度为: " + progress ) ;
}
@Override
public void dataResult(String resultString) {
System.out.println("ssss结果是:" + resultString ) ;
}
});
zyjAsyncTask.execute( "" ) ;
}
}
4、运行结果
ssss开始了
ssss进度为: 10
ssss进度为: 20
ssss进度为: 50
ssss进度为: 100
ssss结果是:哈哈哈,操作完成了

低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
-
上一篇
android 回调函数一:基本概念
1、概念 客户程序C调用服务程序S中的某个函数A,然后S又在某个时候反过来调用C中的某个函数B,对于C来说,这个B便叫做回调函数。 一般说来,C不会自己调用B,C提供B的目的就是让S来调用它,而且是C不得不提供。 由于S并不知道C提供的B姓甚名谁,所以S会约定B的接口规范(函数原型),然后由C提前通过S的一个函数R告诉S自己将要使用B函数,这个过程称为回调函数的注册,R称为注册函数。 2、举个栗子 某天,我打电话向你请教问题,当然是个难题,^_^,你一时想不出解决方法,我又不能拿着电话在那里傻等,于是我们约定:等你想出办法后打手机通知我,这样,我就挂掉电话办其它事情去了。过了XX分钟,我的手机响了,你兴高采烈的说问题已经搞定,应该如此这般处理。故事到此结束。这个例子说明了“异步+回调”的编程模式。其中,你后来打手机告诉我结果便是一个“回调”过程;我的手机号码必须在以前告诉你,这便是注册回调函数;我的手机号码应该有效并且手机能够接收到你的呼叫,这是回调函数必须符合接口规范。 3、举个Android 实例 a.定义接口 public interface OnClickListener {...
-
下一篇
android XMl 解析神奇xstream 四: 将复杂的xml文件解析为对象
前言:对xstream不理解的请看: android XMl 解析神奇xstream 一: 解析android项目中 asset 文件夹 下的 aa.xml 文件 android XMl 解析神奇xstream 二: 把对象转换成xml android XMl 解析神奇xstream 三: 把复杂对象转换成 xml 1、文件准备 把一个预先写好的xml文件放在android项目目录的 asset 文件夹。 文件内容为: <blog> <age>30</age> <name>jhon</name> <person> <pAge>36</pAge> <pName>saliy</pName> </person> </blog> 2、javaBeen package com.android10; public class Person { String pName ; String pAge ; public String getpName() ...
相关文章
文章评论
共有0条评论来说两句吧...
文章二维码
点击排行
推荐阅读
最新文章
- SpringBoot2配置默认Tomcat设置,开启更多高级功能
- Docker使用Oracle官方镜像安装(12C,18C,19C)
- Docker快速安装Oracle11G,搭建oracle11g学习环境
- Springboot2将连接池hikari替换为druid,体验最强大的数据库连接池
- SpringBoot2整合MyBatis,连接MySql数据库做增删改查操作
- SpringBoot2编写第一个Controller,响应你的http请求并返回结果
- SpringBoot2初体验,简单认识spring boot2并且搭建基础工程
- CentOS7编译安装Cmake3.16.3,解决mysql等软件编译问题
- MySQL8.0.19开启GTID主从同步CentOS8
- Jdk安装(Linux,MacOS,Windows),包含三大操作系统的最全安装