android callback用法
- 格式:docx
- 大小:52.71 KB
- 文档页数:4
在Android开发中,回调(Callback)是一种常见的编程模式,用于在异步操作完成后通知应用程序。
它允许将函数作为参数传递给其他函数,并在特定时刻调用这些函数。
下面是一个简单的示例,演示如何在Android中使用回调:
1. 创建一个回调接口:
```java
public interface MyCallback {
void onSuccess(String result);
void onError(Exception e);
}
```
这个接口定义了两个方法:`onSuccess`和`onError`。
当异步操作成功完成时,调用`onSuccess`方法并传递结果作为参数。
当出现错误时,调用`onError`方法并传递异常对象作为参数。
2. 实现回调接口:
public class MyActivity extends AppCompatActivity implements MyCallback {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(yout.activity_main);
// 调用异步函数,并将回调接口作为参数传递
MyAsyncTask.execute(this);
}
@Override
public void onSuccess(String result) {
// 处理成功结果
Log.d("MyActivity", "成功结果: " + result);
}
@Override
public void onError(Exception e) {
// 处理错误信息
Log.d("MyActivity", "发生异常: " + e.getMessage());
}
```
在这个示例中,`MyActivity`实现了`MyCallback`接口,并在`onCreate`方法中调用了一个异步函数`MyAsyncTask.execute`,将当前活动实例作为回调接口的参数传递给异步任务。
3. 编写异步任务类:
```java
public class MyAsyncTask {
public static void execute(MyCallback callback) {
// 模拟异步操作,这里使用线程进行模拟
new Thread(new Runnable() {
@Override
public void run() {
try {
// 模拟异步操作,这里只是简单地休眠一段时间并返回一个字符串作为结果
Thread.sleep(2000);
String result = "Hello, callback!";
callback.onSuccess(result);
} catch (InterruptedException e) {
callback.onError(e);
}
}
}).start();
}
}
```
在`MyAsyncTask`类中,我们定义了一个静态方法`execute`,它接受一个回调接口的实例作为参数。
在方法内部,我们使用线程模拟异步操作,并在操作完成后调用回调接口的方法来通知应用程序。
这里只是简单地休眠2秒钟后返回一个字符串作为结果,你也可以根据实际需求处理其他逻辑。
如果在模拟过程中出现中断异常,则调用回调接口的`onError`方法通知应用程序。