Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/207.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android OnActivityResult中的OnRestoreInstanceState覆盖操作_Android_Activity Lifecycle - Fatal编程技术网

Android OnActivityResult中的OnRestoreInstanceState覆盖操作

Android OnActivityResult中的OnRestoreInstanceState覆盖操作,android,activity-lifecycle,Android,Activity Lifecycle,我有一个用户界面流程,其中用户深入到一个内部活动中,确定后在原始外部活动中设置一个文本字段。在内存不足的情况下(由开发人员选项“不要保留活动”模拟),我得到以下生命周期方法序列: OuterActivity.onCreate OuterActivity.onRestoreInstanceState OuterActivity.onActivityResult-->这就是我调用myEditText.setText()的地方 OuterActivity.myEditText.onRestoreIns

我有一个用户界面流程,其中用户深入到一个内部活动中,确定后在原始外部活动中设置一个文本字段。在内存不足的情况下(由开发人员选项“不要保留活动”模拟),我得到以下生命周期方法序列:

OuterActivity.onCreate

OuterActivity.onRestoreInstanceState

OuterActivity.onActivityResult
-->这就是我调用myEditText.setText()的地方

OuterActivity.myEditText.onRestoreInstanceState
-->这就是旧值被“还原”的地方

处理此问题的最佳做法是什么


我想我要么需要更新EditText的已保存实例状态(如何更新?),要么推迟onActivityResult中的视图更新,将其发布到以后运行(这似乎有点骇人听闻)

我以前处理过这个问题。我最后做的是通过一个片段来处理这个问题。片段生命周期比活动生命周期更好地处理这种情况。片段有一个名为onViewStateRestored的生命周期方法。此方法在恢复视图的状态后调用,因此更改不会被视图的保存状态覆盖。我还没有找到一种等效的活动生命周期方法,尽管可能存在一种。最后,我发现通过片段而不是活动进行工作往往能提供更多的控制和灵活性。