Api每次都在打电话

时间:2014-08-07 11:16:39

标签: android web-services android-fragments

我是android新手,

我的问题是: - 我使用api和显示它的回应,

但是当我再次来到那个页面api时再次打电话。

如何解决这个问题。

我的代码是:

public class SearchScreenFragment extends Fragment implements KeyListener{

    @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container,
            Bundle savedInstanceState) {
        // TODO Auto-generated method stub

        variable.ASC_desc="DESC";
        variable.order="ASC";

        View rootView = inflater.inflate(R.layout.search_screen,container, false);

        Bundle bundle = this.getArguments();

        if(bundle != null){
            search=getArguments().getString("search").trim();  
            variable.searchString=search;
        }
     SearchJob(search);  // Api calling
             }

    }
}

private void SearchJob(String text){

String link="http: // Url to send 


        Log.d("History ", link);

        task=new Async();
        task.execute(link);


    }

}

我发送的网址有时会发生变化,有时会与上一个相同,所以如何解决这个问题。

我很困惑。

请帮我解决这个问题。

谢谢。

1 个答案:

答案 0 :(得分:1)

在您的情况下,每次您打开'时都会调用API SearchJob(search);SearchScreenFragment,因为每次打开此片段时都会调用onCreateView

在我看来,最好的解决方案是将此API的响应缓存/存储在内存中的某个位置(例如,在SQLite数据库或SharedPreferences中)并在本地获取它,而不是再次调用此API。

伪代码:

if(searchResultsAreStored()) {
     getStoredResults();
} else {
     SearchJob(search);  // Api calling
}