Android多线程开发之Callback

Android多线程开发之Callback多线程中的返回 Callback 回调 interface

Callback

javax.security.auth.callback.Callback

Callback implementations do not retrieve or display the information requested by underlying security services. Callback implementations simply provide the means to pass such requests to applications, and for applications, if appropriate, to return requested information back to the underlying security services.

做Android开发的,道友们应该经常会遇到用多线程处理问题,在顺序执行的函数中,return得到一个想要的结果是一件美事,但如果我们要从多线程中返回一个结果怎么办呢?

直接return明显不可能。

此时我们需要用到多线程中的返回Callback—回调。

interface

interface是面向对象编程语言中接口操作的关键字,功能是把所需成员组合起来,用来封装一定功能的集合。它好比一个模板,在其中定义了对象必须实现的成员,通过类或结构来实现它。接口不能直接实例化,即ICount ic=new iCount()是错的。接口不能包含成员的任何代码,只定义成员本身。接口成员的具体代码由实现接口的类提供。接口使用interface关键字进行声明。

实现方式如下

public interface OnResultCallback{ void onComplete(Object object); void onError(int code); }

这里我们随便写了一个接口,接口中有两个方法。如果需要回调的情况有多种,可以在接口中添加每种情况的方法作为返回。

用法

public class DemoThread extends Thread { private final OnResultCallback callback; public DemoThread(OnResultCallback callback) { this.callback = callback; } @Override public void run() { super.run(); //当多线程中操作完成后可在此处回调想要的结果 if (callback != null) { callback.onComplete(null); } //异常情况下的处理 if (callback != null) { callback.onError(-1); } } public interface OnResultCallback { void onComplete(Object object); void onError(int code); } }

这里接口我们放到DemoThread .class中,也可以单独新建一个类,作为接口类来处理。

DemoThread demoThread = new DemoThread(new DemoThread.OnResultCallback() { @Override public void onComplete(Object object) { //得到了想要的结果 } @Override public void onError(int code) { //异常返回 } }); demoThread.start();

有些关键字如果了解不够,可以去官网或者更专业的博客找寻答案。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/200283.html原文链接:https://javaforall.net

(0)
上一篇 2026年3月20日 上午11:09
下一篇 2026年3月20日 上午11:10


相关推荐

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号