接口回调总结

总结:接口的具体实现,接收传过来的参数,再调自己的方法。

理解接口,如电子产品与鼠标,键盘等的关系,

你是工具类找你帮忙,只要他实现Callback,就有onResult()方法,你处理后用callback调它的onResult()方法

理解接口,如电子产品与鼠标,键盘等的关系,

你是工具类找你帮忙,只要他实现Callback,就有onResult()方法,你处理后用callback调它的onResult()方法

只需要把extends FileIOClient 改为implements IFileIOCallBack即可。

后来,帝国将这种利用接口去实现回调机制的方式称之为接口回调。

android demo参考:

/**
 * Bitmap回调接口
 *
 */
public interface BitmapCallback {
	public void getDownloadBitmap(Bitmap bitmap);
}
复制代码
/**
 * 图片下载类
 *
 */
public class ImageDownload {
 
	// 传递进接口参数,这样其他类引用的时候就能调用,这个方法在运行的时候又会回调MainActivity的方法
	public Bitmap getBitmap(final String path, final BitmapCallback callback) {
 
		final Handler handler = new Handler() {
 
			@Override
			public void handleMessage(Message msg) {
				// TODO Auto-generated method stub
				Bitmap bitmap = (Bitmap) msg.obj;
				callback.getDownloadBitmap(bitmap);
			}
		};
		// 图片下载进程
		new Thread() {
			public void run() {
 
				HttpClient httpClient = new DefaultHttpClient();
				HttpGet httpPost = new HttpGet(path);
				HttpResponse response = null;
				try {
					response = httpClient.execute(httpPost);
 
					if (response.getStatusLine().getStatusCode() == 200) {
 
						byte[] datas = EntityUtils.toByteArray(response
								.getEntity());
						Bitmap bitmap = BitmapFactory.decodeByteArray(datas, 0,
								datas.length);
						Message message = Message.obtain();
						message.obj = bitmap;
						handler.sendMessage(message);
					}
 
				} catch (ClientProtocolException e) {
					// TODO Auto-generated catch block
					e.printStackTrace();
				} catch (IOException e) {
					// TODO Auto-generated catch block
					e.printStackTrace();
				}
 
			};
 
		}.start();
 
		return null;
	}
}
复制代码
public class MainActivity extends Activity {
	ImageView image = null;
 
	@Override
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.activity_main);
		image = (ImageView) findViewById(R.id.image);
		// 实例化ImageDownload类,并且传递参数调用getBitmap方法
		new ImageDownload().getBitmap(
				"http://2t.5068.com/uploads/allimg/150407/1-15040G45F6.jpg",
				new BitmapCallback() {
 
					@Override
					public void getDownloadBitmap(Bitmap bitmap) {
						// TODO Auto-generated method stub
						image.setImageBitmap(bitmap);
					}
				});
	}
复制代码

转载于:https://juejin.im/post/5ca8a8d1f265da307460f6fd

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值