Android 改装响应车身关闭

Android 改装响应车身关闭,android,retrofit,retrofit2,Android,Retrofit,Retrofit2,我使用了改装,就像下面的代码一样。但我找不到任何解决方案和官方文件来帮助我阻止泄漏并关闭响应机构。也许有人知道它应该是什么样子? 我的改装电话: PlacesAPI.Factory.getInstance().getPlaces().enqueue(new Callback<Places>() { @Override public void onResponse(Call<Places> call, Res

我使用了改装,就像下面的代码一样。但我找不到任何解决方案和官方文件来帮助我阻止泄漏并关闭响应机构。也许有人知道它应该是什么样子? 我的改装电话:

PlacesAPI.Factory.getInstance().getPlaces().enqueue(new Callback<Places>() {

                @Override
                public void onResponse(Call<Places> call, Response<Places> response) {
                    for (int i = 0; i < response.body().getPosts().size(); i++) {
                        if (response.body().getPosts().get(i).getNazwa().equals(shopName)) {
                            addMarker(Double.parseDouble(response.body().getPosts().get(i).getDlug()),
                                    Double.parseDouble(response.body().getPosts().get(i).getSzer()));
                        }
                    }
                                    }

                @Override
                public void onFailure(Call<Places> call, Throwable t) {

                }
            });
PlacesAPI.Factory.getInstance().getPlaces().enqueue(新回调(){
@凌驾
公共void onResponse(调用、响应){
对于(int i=0;i
这可能会有所帮助

response.raw().body().close();
据此,改装2为您关闭车身


.

您是否尝试不使用匿名类作为回调? 尝试创建一个类成员

private Callback<Places> mCallback = new Callback<Places>() {

            @Override
            public void onResponse(Call<Places> call, Response<Places> response) {
                for (int i = 0; i < response.body().getPosts().size(); i++) {
                    if (response.body().getPosts().get(i).getNazwa().equals(shopName)) {
                        addMarker(Double.parseDouble(response.body().getPosts().get(i).getDlug()),
                                Double.parseDouble(response.body().getPosts().get(i).getSzer()));
                    }
                }
                                }

            @Override
            public void onFailure(Call<Places> call, Throwable t) {

            }
        });
PlacesAPI.Factory.getInstance().getPlaces().enqueue(mCallback);
private Callback mCallback=new Callback(){
@凌驾
公共void onResponse(调用、响应){
对于(int i=0;i
请尝试让评论通知我们所有人:)。

重构您的代码

重复抓取响应体是无效的

要排列单词,请参见下面的链接

响应主体只能使用一次

final List posts=response.body().getPosts();
职位(p:职位){
if(p.getNazwa().equals(shopName)){
addMarker(Double.parseDouble(p.getDlug()),Double.parseDouble(p.getSzer());
}
而且,根据文档,是的,响应必须关闭,因此使用
try
块来完成此操作


如果我使用您的解决方案,我不应该关闭response?对不起,我的不好。试试这个。成员变量的行为与匿名类有什么不同?您不能多次调用
response.body()
在地图上添加所有标记后,我尝试清除response。我在官方文档中读到总是关闭()应该这样做。另外,android studio向我提供logcat上的信息,说明我有漏洞,没有使用close()在哪里可以使用它。在那之后,我通过Eclipse Mat检查了堆,我看到了许多响应对象。应该只有一个响应对象,因为它是唯一的参数。您是否使用改型2?是的,改型2以及如何在您的解决方案中使用close Station?也许它不会在这个活动中产生任何泄漏和onDestroy,请使用GC清理所有内容?欢迎使用o使用
try finally
block。文档中存在
close
方法,如果您想在您的姓名中找到它cricket\u 007…+1
final List<Post> posts = response.body().getPosts();
for (Post p : posts) {
    if (p.getNazwa().equals(shopName)) {
        addMarker(Double.parseDouble(p.getDlug()), Double.parseDouble(p.getSzer()));
}