我是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);
}
}
我发送的网址有时会发生变化,有时会与上一个相同,所以如何解决这个问题。
我很困惑。
请帮我解决这个问题。
谢谢。
答案 0 :(得分:1)
在您的情况下,每次您打开'时都会调用API SearchJob(search);
。 SearchScreenFragment
,因为每次打开此片段时都会调用onCreateView
。
在我看来,最好的解决方案是将此API的响应缓存/存储在内存中的某个位置(例如,在SQLite数据库或SharedPreferences中)并在本地获取它,而不是再次调用此API。
伪代码:
if(searchResultsAreStored()) {
getStoredResults();
} else {
SearchJob(search); // Api calling
}