最近我创建了一个执行异步任务的应用程序,我的应用程序有一个包含滑动标签的工具栏,当我将标签从第一个标签更改为第二个标签时,我的异步任务一遍又一遍地执行,怎么能我避免那样?,我怎样才能保存片段的状态?我试图使用
public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
if(savedInstaceState!=null){
//TODO
}
}
答案 0 :(得分:0)
你是正确的,你必须使用保存实例状态..在你的情况下你可以将数据存储到单个类或主活动中的静态属性,然后在你的片段中创建一个全局布尔isDataLoaded,在真正有价值的情况下,你不执行任务。保存变量的状态就是这样做:
@Override
public void onSaveInstanceState(Bundle outState) {
outState.putBoolean("LOADDATA", isDataLoaded);
super.onSaveInstanceState(outState);
}
然后在你的createView:
if(savedInstanceState != null){
isDataLoaded = savedInstanceState.getBoolean("LOADDATA");
}