onRestoreInstanceState-Android视图生命周期
我有一个名为onRestoreInstanceState-Android视图生命周期,android,view,Android,View,我有一个名为RouteAutofillControl的自定义视图(组)类,它基本上是一个EditText,用从当前位置解析的地址填充。AsyncTask在视图构造函数中启动,一旦完成,我在成员变量中记得任务已经完成 我还实现了对配置更改的状态保存,它可以正常工作 我的问题是,此时视图构造函数称为taskCompleted成员变量尚未保留,因此AsyncTask再次启动 因此,我在视图生命周期中寻找一个方法,该方法在onRestoreInstanceState之后调用 以下是视图中的重要部分: p
RouteAutofillControl
的自定义视图(组)类,它基本上是一个EditText
,用从当前位置解析的地址填充。AsyncTask
在视图构造函数中启动,一旦完成,我在成员变量中记得任务已经完成
我还实现了对配置更改的状态保存,它可以正常工作
我的问题是,此时视图构造函数称为taskCompleted
成员变量尚未保留,因此AsyncTask再次启动
因此,我在视图生命周期中寻找一个方法,该方法在onRestoreInstanceState
之后调用
以下是视图中的重要部分:
public class RouteAutofillControl extends LinearLayout {
private boolean taskCompleted;
public RouteAutofillControl(Context context, AttributeSet attrs, int defStyle) {
if(!taskCompleted) {
new FillRouteTask(location).execute();
}
}
@Override
public Parcelable onSaveInstanceState() {
final Parcelable superState = super.onSaveInstanceState();
SavedState savedState = new SavedState(superState);
savedState.taskCompleted = taskCompleted;
savedState.resolvedAddress = resolvedAddress;
return savedState;
}
@Override
public void onRestoreInstanceState(Parcelable state) {
Log.d(TAG, "onRestoreInstanceState");
SavedState savedState = (SavedState) state;
super.onRestoreInstanceState(savedState.getSuperState());
taskCompleted = savedState.taskCompleted;
resolvedAddress = savedState.resolvedAddress;
}
}
我没有找到任何有关视图生命周期方法的信息,我非常感谢任何帮助或建议,以使其更好,干杯:)不是很新,但我认为这仍然是事实
这里需要保留的是,在父级的addView进程之后调用onAttachedToWindow,该进程将调用其子级的restoreState方法
因此,在您的情况下,我会将我的任务移到这个回调:
@Override
public void onAttachedToWindow() {
if(!taskCompleted) {
new FillRouteTask(location).execute();
}
}
thx,我在这张图表上翻了好几次,都没认出它来。。。我真是个瞎鼹鼠;)