android 回调函数二:应用实例
前言:如果对android回调的概念不明白的请看: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( );
publishProgress( );
publishProgress( );
publishProgress( );
return "哈哈哈,操作完成了" ;
} //onProgressUpdate方法用于更新进度信息
@Override
protected void onProgressUpdate(Integer... progresses) {
zyjCallBack.progress( progresses[] );
} @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结果是:哈哈哈,操作完成了
android 回调函数二:应用实例的更多相关文章
- android 回调函数一:基本概念
1.概念 客户程序C调用服务程序S中的某个函数A,然后S又在某个时候反过来调用C中的某个函数B,对于C来说,这个B便叫做回调函数. 一般说来,C不会自己调用B,C提供B的目的就是让S来调用它,而且是C ...
- android 回调函数的使用
// activity 之间方法调用的桥梁 public class ActivityCallBridge { static ActivityCallBridge mBridge; private O ...
- Android 回调函数的理解,实用简单(回调函数其实是为传递数据)
作者: 夏至,欢饮转载,也请保留这段申明 http://blog.csdn.net/u011418943/article/details/60139910 一般我们在不同的应用传递数据,比较方便的是用 ...
- android回调函数
在我们进行android开发的时候,常常遇到一些回调函数,当中,我们最常常使用的回调就是,当我们对一个组件设置监听的时候,事实上就相对于设置的回调函数.比如: Button btn = (Button ...
- android 回调函数使用简介
//1---定义回调函数 public interface GirdMenuStateListener { void onSuccess(); void onError(); } //2---使用的地 ...
- php回调函数原理和实例
原理 自己调用自己 称之为“递归”,而不是回调 你也知道回调的关键是这个回既然是回,那么就有一个谁是主体的问题,因为回调是往回调用的意思我调用了函数A,而函数A在执行过程中调用了我提供的函数B,这个函 ...
- android 回调函数
http://blog.csdn.net/xiaanming/article/details/8703708 此为回调的java 实例 http://www.cnblogs.com/qingchen1 ...
- Python回调函数用法实例详解
本文实例讲述了Python回调函数用法.分享给大家供大家参考.具体分析如下: 一.百度百科上对回调函数的解释: 回调函数就是一个通过函数指针调用的函数.如果你把函数的指针(地址)作为参数传递给另一个函 ...
- 十四、Android学习笔记_Android回调函数触发的几种方式 广播 静态对象
一.通过广播方式: 1.比如登录.假如下面这个方法是外界调用的,那么怎样在LoginActivity里面执行登录操作,成功之后在回调listener接口呢?如果是平常的类,可以通过构造函数将监听类对象 ...
随机推荐
- java中静态代码块的用法 static用法详解(转)
(一)java 静态代码块 静态方法区别一般情况下,如果有些代码必须在项目启动的时候就执行的时候,需要使用静态代码块,这种代码是主动执行的;需要在项目启动的时候就初始化,在不创建对象的情况下,其他程序 ...
- Investigating Your RAM Usage
转载自:http://developer.android.com/intl/zh-cn/tools/debugging/debugging-memory.html Because Android is ...
- Maven进价:Maven构建系列文章
Maven:基于Java平台的项目构建.依赖管理和项目信息管理. 1.构建 Maven标准化了构建过程 构建过程:编译.运行单元测试.生成文档.打包和部署 避免重复:设计.编码.文档.构建 2.依赖管 ...
- 自动化基础普及之selenium是啥?
Selenium 并不像QTP那样让人一下子就明白是什么?它是编程人员的最爱,但它却对测试新手产生了很大的阻碍. Selenium 是啥? Selenium RC是啥? Webdriver 又是啥? ...
- IOS开发UI基础之UIScrollView
什么是UIScrollView ● 移动设备的屏幕⼤大⼩小是极其有限的,因此直接展⽰示在⽤用户眼前的内容也相当有限 ● 当展⽰示的内容较多,超出⼀一个屏幕时,⽤用户可通过滚动⼿手势来查看屏幕以外的内容 ...
- C#中国象棋+游戏大厅 服务器 + 客户端源码
来源:www.ajerp.com/bbs C#中国象棋+游戏大厅 服务器 + 客户端源码 源码开源 C#版中国象棋(附游戏大厅) 基于前人大虾的修改版 主要用委托实现 服务器支持在线人数,大厅桌数的设 ...
- 重构第17天提取父类(Extract SuperClass)
今天的重构来自 Martin Fowler的http://refactoring.com/catalog/extractSuperclass.html. 理解:本文中的“提取父类”是指类中有一些字段或 ...
- Asp.Net 三层架构之泛型应用
一说到三层架构,我想大家都了解,这里就简单说下,Asp.Net三层架构一般包含:UI层.DAL层.BLL层,其中每层由Model实体类来传递,所以Model也算是三层架构之一了,例外为了数据库的迁移或 ...
- 新的Visual C++代码优化器
微软在 5 月 4 日发布了新的高级代码优化器,服务于 Visual C++ 的后端编译器.提高了代码性能,可以压缩代码体积,将编译器带入了一个新的境界. Visual C++ 的团队在博客上称,这将 ...
- 【JS复习笔记】04 数组
JS里的数组其实并不是一个数组,它其实是一个对象,a[1]这种调用方式其实就是一个字面量为1的属性. 因为这东西实际上是一个对象,所以你就可以理解下面这种声明了吧! var arrName=['我可以 ...