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,我在这张图表上翻了好几次,都没认出它来。。。我真是个瞎鼹鼠;)