android在Callback回调里怎样取得Context上下文
时间: 2023-12-14 11:02:49 浏览: 128
在Android中,可以通过传入Context参数或者使用Lambda表达式来获取Context上下文。如果使用Lambda表达式,则可以使用闭包来获取Context上下文。例如,在使用Retrofit进行网络请求的时候,可以通过传入Context参数或者使用Lambda表达式来获取Context上下文,示例如下:
```java
public void doNetworkRequest(final Context context) {
// ...
Call<MyResponse> call = apiService.getMyResponse();
call.enqueue(new Callback<MyResponse>() {
@Override
public void onResponse(Call<MyResponse> call, Response<MyResponse> response) {
// Use the context object here...
Toast.makeText(context, "Response received!", Toast.LENGTH_SHORT).show();
}
@Override
public void onFailure(Call<MyResponse> call, Throwable t) {
// Use the context object here...
Toast.makeText(context, "Failed to receive response!", Toast.LENGTH_SHORT).show();
}
});
// ...
}
```
在上面的示例中,通过传入Context参数或者在Lambda表达式中获取Context上下文,然后在异步操作中使用Context对象。请注意,在使用Context对象的时候,需要确保它是有效的并且没有被销毁。否则,可能会引发NullPointerException等异常。
阅读全文